Saltar al contenido

ERROR EN MACRO PARA ELIMINAR HOJA ACTIVA


Recommended Posts

publicado

Hola amigos de AE. tengo un problema con una macro que antes funcionaba bien. La macro es para eliminar la hoja activa. Hay 2 msgbox para confirmar la decisión de eliminar. Antes funcionaba bien pero ahora me da un error y cierra excel.

En el archivo anexo. la macro funciona bien

Y las 4 figuras que incluyo en el archivo corresponden al mensaje que me da en el archivo original.

Alguna idea de cual puede ser el problema u otro comando que haga la misma operación.

Gracias!1

eliminar hoja.xlsm

publicado

He probado la macro y a mi me funciona. Aunque yo lo haría de otra manera.

Por ejemplo

Sub EliminarReceta()
   Dim resp As Long
   resp = MsgBox("¿ESTÁ SEGURO DE ELIMINAR ESTA RECETA?", _
                 vbQuestion + vbYesNo, "Confirmación eliminación")
   If resp = 6 Then
      Dim ws As Worksheet
      Set ws = ThisWorkbook.ActiveSheet
      Application.DisplayAlerts = False
      ws.Delete
      Application.DisplayAlerts = True
   End If
End Sub

 

publicado

Yo, ahorrando como siempre:

 

Sub EliminarReceta()
If MsgBox("¿ESTÁ SEGURO DE ELIMINAR ESTA RECETA?", vbYesNo + vbQuestion) = vbYes Then ActiveSheet.Delete
End Sub

 

publicado

Hola @Antoni @ikannimuchas gracias por sus respuestas. Efectivamente ambas soluciones funcionan, sin embargo, en el archivo original no la hace. Estuve viendo el archivo original por todos lados y descubrí la razón del error. En el archivo original hay un gráfico. Si elimino el gráfico las macros propuestas por ustedes funcionan, pero si el gráfico está presente (que es como va a estar siempre) pues da el error y cierra excel.

Anexo les envío el archivo sin datos pero con el gráfico para que vean el comportamiento del error.

Gracias

ERROR AL ELIMINAR HOJA.xlsm

publicado

Eliminando todos los objetos previamente, funciona:

Sub EliminarReceta()
If MsgBox("¿ESTÁ SEGURO DE ELIMINAR ESTA RECETA?", vbYesNo + vbQuestion) = vbYes Then
   ActiveSheet.Shapes.SelectAll
   Selection.Delete
   ActiveSheet.Delete
End If
End Sub

 

publicado

@Antoni con esta si funciona bien, que opinas?

Sub EliminarReceta()
If MsgBox("¿ESTÁ SEGURO DE ELIMINAR ESTA RECETA?", vbYesNo + vbQuestion) = vbYes Then
   ActiveSheet.ChartObjects("Gráfico 1").Select
   ActiveChart.Parent.Delete
   ActiveSheet.Delete
End If
End Sub

 

publicado

@AntoniEn el archivo original con la hoja desprotegida funciona perfectamente pero con la hoja protegida da el siguiente error:

error 2147024809 (80070057) en tiempo de ejecución

el valor especificado se encuentra fuera de los limites

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.