Una sola macro VBA Excel para 2 botones

De nuevo Dante

Hice esta macro para 2 botones, cada uno en hojas diferentes.

La 1ª parte me funciona, la 2ª no hace nada

Sub Hojas()
    If Sheets(1).Visible = True Then 'si sheets(1) esta visible
        Sheets(2).Visible = 1 'coloca la propiedad visible a Sheets(2)
        Sheets(2).Activate ' y selecciona la Sheets(2)

    Else 'si no
    If Sheets(2).Visible = True Then 'si Sheets(2) está visible
        Sheets(2).Visible = 2 'oculta la Sheets(2)
        Sheets(1).Activate ' y selecciona la Sheets(1)
    End If
    End If
End Sub

La hice individual, funciona pero quisiera una sola macro para los 2 botones

Sub ayuda()
Sheets(2).Visible = xlSheetVisible
Sheets(2).Select
End Sub
Sub Lista()
Sheets(2).Visible = xlSheetVeryHidden
Sheets(1).Select
End Sub

Podría yo, y así tenia, asignar un vinculo a cada forma, pero no podre ocultar ni des ocultar la hoja

2 respuestas

Respuesta
1

¿Pero qué quieres que haga la macro única?

Una sola macro llamada Sub Hojas()

2 botones, cada uno con asignacion de la misma macro, Sub Hojas()

Un boton en hoja1  y otro en otra hoja2

Piso el boton en la hoja1, DESoculta la hoja2 y mostrarmela, (Sheets(2).Select)

Si piso el boton en la hoja2, mostrarme la hoja1 y ocultar la hoja2, (Sheets(2).Visible = 2 'oculta la Sheets(2))

Si algo no dejo claro, me dices.

Gracias

H o l a:

Te anexo la maco. Antes de ejecutarla deberás ocultar una hoja en Veryhidden

Sub Hojas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    If Sheets(1).Visible = xlSheetVeryHidden Then
        Sheets(1).Visible = xlSheetVisible
        Sheets(2).Visible = xlSheetVeryHidden
        Sheets(1).Select
    ElseIf Sheets(2).Visible = xlSheetVeryHidden Then
        Sheets(2).Visible = xlSheetVisible
        Sheets(1).Visible = xlSheetVeryHidden
        Sheets(2).Select
    End If
End Sub

sal u dos

Respuesta
1

Grabar el codigo en una hoja no tiene mucho alcance

Al cambiar la hoja pierde la fuerza

Si lo guardas en un modulo y le pones en el botton

Application. Run "macro1" puedes cambiar todas las veces de hoja y siempre va a tener mas alcance asi quedaria en la grabadora

Sub Macro1()
' Acceso directo: CTRL+a
If Sheets(1).Visible = True Then
Sheets(2).Visible = xlSheetVisible
Sheets(1).Visible = xlSheetVeryHidden

Else
Sheets(1).Visible = xlSheetVisible
Sheets(2).Visible = xlSheetVeryHidden
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas