Validar si la hoja existe y si es así, no crearla

Tengo una Macro que hace una copia de un formato que tengo oculto y le cambia el nombre. Sin embargo quiero hacer que solo cree una hoja, si por error se le vuelve a dar a crear una copia no lo haga porque ya existe.

Lo hice de esta manera pero igual me crea una copia sin cambiarle el nombre y lo que hice fue que eliminara esa copia, pero me sale el mensaje de si estoy seguro de eliminarla, pero no quiero que nada de eso me salga, solo copie y si ya existe la hoja no lo haga.

La hice así

Sub Reestablecer()
' Crea una nueva hoja para la siguiente conciliación
    On Error GoTo Errores
    Application.ScreenUpdating = False
    Sheets("Original").Copy After:=Sheets(3)
    Sheets("Original (2)").Name = "Analisis"
    Sheets("Analisis").Visible = True
    Sheets("Hoja 2").Select
    Exit Sub
Errores:
    Sheets("Original (2)").Delete
    MsgBox "Probablemente ya existe la hoja. Revisar libro"
    Application.ScreenUpdating = True
End Sub

1 Respuesta

Respuesta
1

En la medida de lo posible, no utilices las instrucciones On Error, lo recomendable es controlar los errores con código, te anexo un ejemplo:

Sub Reestablecer()
' Crea una nueva hoja para la siguiente conciliación
    Application.ScreenUpdating = False
    hoja = "Analisis"
    existe = False
    For Each h In Sheets
        If LCase(h.Name) = LCase(hoja) Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        Sheets("Original").Copy After:=Sheets(3)
        Sheets("Original (2)").Name = hoja
        Sheets("Analisis").Visible = True
        Sheets("Hoja 2").Select
    Else
        MsgBox "Ya existe la hoja. Revisar libro"
    End If
End Sub

Si la hoja no existe la crea, si la hoja ya existe, entonces te envía el mensaje.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas