¿Cómo hacer en excel para borrar los datos de toda una hoja con un botón que esta en otra hoja?

Necesito crear un botón en una hoja llamada "Totales" que controle si existe una hoja llamada "Resumen" y si esta existe, que borre todos los datos excepto el rango A1:N1 (encabezados), de la hoja "Resumen".

También necesito crear otro botón en la hoja llamada "Totales" que controle si la hoja "Resumen" existe y si existe, que controle si esta vacía excepto en el rango A1:N1 (encabezados).

Me podrán ayudar estuve probando con el for y el if pero no me sale porque no se manejar bien las propiedades de objetos de excel.

1 respuesta

Respuesta
1

Para controlar si una hoja existe utiliza este bucle:

Dim sh

dim esta as byte

For each sh in Activeworkbook.Sheets

if sh.name = "Resumen" then

'si encontró la hoja marca una variable con 1 y sale del bucle

esta = 1

Exit for

end f

next

Ahora ya sabés si existe la hoja o no, consultando si esta = 0, si está limpia todas las filas excepto la 1:

If esta = 1 then

Sheets("Resumen").Rows("2:65500").clear

end if

Aquí podes usar:Clear (borra todo), Clearcontents (borra solo el contenido), Delete (elimina las filas), etc

No sé si tenés claro cómo asociarlo al botón.

En el Editor, insertá un módulo y allí copiá esto:

Sub BorraFilas()

'aquí las instrucciones que te dejé

End Sub

En la hoja, dibujá un botón con la barra FOrmulario. Clic derecho sobre el b otón, opción Asignar macro y seleccioná esta que acabas de dejar en el módulo.

Sdos y no dejes la consulta sin finalizar

Elsa todo de 10 con tu ayuda me sirvió muchísimo...

Me podrías ayudar con esto:

También necesito crear otro botón en la hoja llamada "Totales" que controle si la hoja "Resumen" existe y si existe, que controle si esta vacía excepto en el rango A1:N1 (encabezados)


Solo lo q esta en negrita porque lo demás ya me ayudaste

Muchas gracias!!!

Una vez que conocemos el valor de la variable 'esta' podemos seguir controlando otros aspectos.

En el ejemplo sgte te indica en un Msgbox si hay o no datos.

Sub AveriguaDatos()
'x Elsamatilde
Dim sh
Dim esta As Byte
Dim conta As Long
'recorremos el libro para saber si existe hoja Resumen
For Each sh In ActiveWorkbook.Sheets
If sh.Name = "Resumen" Then
'si encontró la hoja marca una variable con 1 y sale del bucle
esta = 1
Exit For
End If
Next
'si la hoja existe averiguo si tiene datos más allá de los títulos
If esta = 1 Then
conta = Application.WorksheetFunction.CountA(Range("A2:N65536"))
'dejo un mensaje indicando cantidad de celdas con datos
If conta = 0 Then
MsgBox "No existen datos"
Else
MsgBox "Existen datos en hoja Resumen "
End If
End If
End Sub

Tené presente que una fórmula, si devuelve "" también es un dato.

En la sección Macros de mi sitio podés encontrar más detalles de cómo y dónde dejar las macros

PD) Trata de dejar 1 sola consulta por cada entrada. Gracias

Muchas gracias Elsa!!!!

Se nota que sos toda una experta en excel.

La solución presentada fue justo lo que necesitaba

Me ayudaste mucho, también te quiero agradecer que hayas comentado el código y explicado

algunas cosas, porque asi es mucho mas fácil de entender.

Gracias Totales!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas