Excel - habilitar o deshabilitar botones de un formulario según pagina activa

Filtrado por el usuario: Antoni Masana
Filtrado por el usuario 'Antoni Masana' (Eliminar fitro)
 
Vista:
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

habilitar o deshabilitar botones de un formulario según pagina activa

Publicado por Luis (13 intervenciones) el 14/01/2019 09:27:33
Buenos días.

me gustaría que me ayudaran. tengo un formulario llamado "Opciones" que contiene únicamente botones que abren hojas o ejecutan otros formularios.

Quiero que según la hoja en la que esté, determinados botones queden desactivados para no poder ejecutarlos por error. He creado el siguiente código, pero no me funciona, como estoy comenzando a hacer macros, no se donde me equivoco.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub ocultar_botonnes()
 
Dim hoja As Worksheet
 
If hoja = 1 Or hoja = 17 Then
    CommandButton17.Enabled = False
End If
 
If hoja <> 1 Then
    CommandButton1.Enabled = False
    CommandButton2.Enabled = False
End If
 
End Sub

no se si declaro bien la macro.

Gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

habilitar o deshabilitar botones de un formulario según pagina activa

Publicado por Antoni Masana (2540 intervenciones) el 14/01/2019 10:02:04
Te adjunto dos soluciones, en mi opinión la 1ª es la mejor.

Opción - 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub ocultar_botones()
    Dim hoja As String
 
    Hoja = ActiveSheet.Name
 
    If Hoja = "Hoja1" Or Hoja = "Hoja17" Then
        CommandButton17.Enabled = False
    Else
        CommandButton17.Enabled = True
    End If
 
    If Hoja <> "Hoja1" Then
        CommandButton1.Enabled = False
        CommandButton2.Enabled = False
    Else
        CommandButton1.Enabled = True
        CommandButton2.Enabled = True
    End If
End Sub

Opcion - 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub ocultar_botones()
    If ActiveSheet.Index  = 1 Or ActiveSheet.Index  = 17 Then
        CommandButton17.Enabled = False
    Else
        CommandButton17.Enabled = True
    End If
 
    If ActiveSheet.Index  <> 1 Then
        CommandButton1.Enabled = False
        CommandButton2.Enabled = False
    Else
        CommandButton1.Enabled = True
        CommandButton2.Enabled = True
    End If
End Sub



Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

habilitar o deshabilitar botones de un formulario según pagina activa

Publicado por Luis (13 intervenciones) el 14/01/2019 12:51:51
Muchas gracias de nuevo Antoni.

La opción1ª funciona perfectamente.

Por lo que estoy leyendo, para que este procedimiento se ejecute al inicar el formulario he de utilizar - Private Sub UserForm_Initialize() -

En lugar de un procedimiento sub ().

Seguimos aprendiendo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar