Crear hoja sino existe y mostrarla si ya está en el li

Yo otra vez. Quería preguntarte cómo unirías las dos respuestas que me has dado antes con respecto a la creación de una hoja, o mostrar una hoja oculta, haciendo doble click.
Necesito que al hacer doble click, la macro, si no existe la hoja, la cree. Y si ya existe la hoja y está oculta, la muestre.
Porque por ejemplo, si creo una hoja con el nombre que tiene la celda, al hacer por primera vez doble click en ella, no hay ningún problema. La macro funciona bien. Pero si le hago doble click otra vez, me da error, y me lleva a la depuración de la macro.
Podría ser sólo un mensaje diciendo que ya está creada, o algo así, o mejor, que la mostrase.
Y otra cosa, cómo puedo darle formato a las hojas que creo? Por ejemplo, añadir esto al código:  ActiveWindow.DisplayGridlines = False
Y una última cosa, y te doy las gracias de antemano, cómo puedo hacer para que al cerrar el libro, se oculten todas las hojas menos la "principal"?
Gracias, muchas gracias y perdona tantas preguntas!
Respuesta
1
Intenta esto:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
    On Error GoTo 99
    hojaact = ActiveSheet.Name
    libro = ActiveCell.Value
    For i = 1 To Sheets.Count
        If Sheets(i).Name = libro Then
            If Sheets(i).Visible = False Then Sheets(i).Visible = True
                Sheets(libro).Visible = True
                Sheets(libro).Select
                Exit Sub
            End If
    Next
    Sheets.Add
    ActiveSheet.Name = libro
    'La variable Libro lee el nombre de la celda a la que le diste doble click, esta debe tener el nombre de la hoja que deseas mostrar y que esta oculta.
    Sheets(libro).Visible = True
    'el nombre de la celda ahora es el nombre de la hoja oculta que quieres mostrar, entonces se muestra.
    Exit Sub
99:
    MsgBox "hoja creada"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas