Como desactivo un shape

Hola Nilda:
Se terminó el mundial de fútbol y me reintegro al mundo.
¿Podrías ayudarme en el código que me permita deshabilitar temporariamente un botón creado en una planilla excel?
Lo que necesito es que en determinadas circunstancias, el usuario no clickee (o no tenga efecto) en determinados botones (para evitar que se disparen las macros asociadas)
Desde ya gracias
¿Cuándo pasas por BS.As.-:)?

1 respuesta

Respuesta
1
Un ejemplo del código sería lo siguiente con los botones de imprimir y guardar.
En el evento Open del libro los desactivas y en BeforeClose los dejas como estaban.
El número es el que corresponde al botón, verifica si puedes controlar los personales por nombre.
Private Sub Workbook_Open()
Application.CommandBars("Standard").Controls(6).Enabled = False 'imprimir
Application.CommandBars("Standard").Controls(3).Enabled = False 'guardar
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Standard").Reset
End Sub
Vamos bárbaro.
Tu rutina me deshabilita los botones del menú.
Trato de probar como hacer com botones creados por mí.
Si podes mostrame como...
Besos fuertes
Leo
Probé y por nombre no lo pude sacar, te paso la macro donde crea una "barra personalizada Leo" en ella se encuentran 4 botones, 3 de los comunes y el último sería al que le asignas una macro.
*********
Sub Macro1()
'
' Macro grabada el 04/07/2002 por Nilda Beatriz Díaz
'
Application.CommandBars.Add(Name:="Barra Personal Leo").Visible = True
Application.CommandBars("Barra Personal Leo").Controls.Add Type:= _
msoControlButton, ID:=23, Before:=1
Application.CommandBars("Barra Personal Leo").Controls.Add Type:= _
msoControlButton, ID:=3, Before:=2
Application.CommandBars("Barra Personal Leo").Controls.Add Type:= _
msoControlButton, ID:=4, Before:=3
Application.CommandBars("Barra Personal Leo").Controls.Add(Type:= _
msoControlButton, ID:=2950, Before:=4).OnAction = "macro2"
End Sub
************
Donde descubrimos que le asigna el número 4, entonces en el Open iría
*********
Private Sub Workbook_Open()
Application.CommandBars("Barra Personal Leo").Controls(4).Enabled = False
End Sub
*********
Y en close
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Barra Personal Leo").Controls(4).Enabled = True
End Sub
Resumiendo, si colocas un botón personal en una barra estándar por ejemplo detrás del subrayado le colocará el número 6, pero si lo colocas al final de la misma barra será el 20 ya que esta cuenta con 19 botones visibles.
A ver si esto te ayuda.
Sos una ídola.
Es exactamente lo que necesitaba.
Al fin una mujer capaz de satisfacer mis máximos deseos (y con que velocidad!)
Te debo varias.
Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas