por Adrian » 28 Ago 2006 09:29
Hola!
Copia y pega en u módulo este código. No te confundas nombres de macro con títulos.
Atte.
Sub CrearBarraPersonalizada()
Dim cb
On Error GoTo e 'si se produce error, voy a e
Application.ScreenUpdating = False 'no muestra transción de paso de hojas
Application.ActiveWorkbook.Sheets(1).Select 'selecciono hoja1 Load Bajass
' crear una nueva barra de comandos
Dim cbMenu As CommandBarPopup, cbButton As CommandBarButton
QuitaBarras ' borros las barras perzonalizadas si exite alguna
' creo la nueva barra de comandos
Set cb = Application.CommandBars.Add("Mi Barra", msoBarTop, False, True)
cb.Protection = msoBarNoChangeDock
' agrego un menú a la nueva barra
Set cbMenu = cb.Controls.Add(msoControlPopup, , , , True)
With cbMenu
.Caption = "&Registro" ' lo que se muestra, subrayado la R
End With
' agrego un item al menú
With cbMenu.Controls.Add(msoControlButton, 1, , , True)
.Caption = "Tu&Macro1" ' lo que se muestra, subrayado la t
.OnAction = "TuMacro1" 'llamo a la macro
End With
' agrego un item al menú
With cbMenu.Controls.Add(msoControlButton, 1, , , True)
.Caption = "Tu&Macro2" ' lo que se muestra, subrayado la j
.OnAction = "TuMacro2" 'llamo a la macro bajas
End With
' agrego un item al menú
With cbMenu.Controls.Add(msoControlButton, 1, , , True)
.Caption = "Tu&Macro3" ' lo que se muestra, subrayado la j
.OnAction = "TuMacro3" 'llamo a la macro bajas
End With
' agrego un item al menú
With cbMenu.Controls.Add(msoControlButton, 1, , , True)
.Caption = "&Quitar Barra de Comandos"
.OnAction = "QuitaBarras"
.FaceId = 67 ' icono de tachito de basura
.Style = msoButtonIconAndCaption 'botón con icono y mensaje
.BeginGroup = True 'comienza otro grupo,y éste esta la principio. Hace la línea
End With
' agrego un botón a la barra, utilizo un icono personalizado en FaceId
Set cbButton = cb.Controls.Add(msoControlButton, , , , True)
With cbButton
.Caption = "Acerca De"
.Style = msoButtonIcon
.OnAction = "Acercade"
.TooltipText = "Ver Autor"
End With
cb.Visible = True ' muestro la barra personalizada
Set cbButton = Nothing
Set cbMenu = Nothing
Set cb = Nothing
'Esto vino de la ayuda de VBA
'se utiliza para desvincular una variable objeto de un objeto real.
'Utilice la instrucción Set para asignar Nothing a una variable objeto
Exit Sub
e: 'hubo un error, muestro un mensaje
MsgBox "Error causado por:" & Err.Description + Chr(13) & "Consulte al proveedor", vbInformation + vbOKOnly, "Sr. Operador"
End Sub
Sub QuitaBarras()
On Error GoTo e
Dim Bar As CommandBar 'creo el objeto barra para el for
'borro las barras personalizadas creadas por código
For Each Bar In Application.CommandBars
If Not Bar.BuiltIn Then Bar.Delete
Next
Exit Sub
e: 'hubo un error, muestro un mensaje
MsgBox "Error causado por:" & Err.Description + Chr(13) & "Consulte al proveedor", vbInformation + vbOKOnly, "Sr. Operador"
End Sub
Sub TuMacro1()
MsgBox "Hola!" + Chr(13) + "Esta es la Macro Nº1", vbOKOnly + vbInformation, "Tus Macros"
End Sub
Sub TuMacro2()
MsgBox "Hola!" + Chr(13) + "Esta es la Macro Nº2", vbOKOnly + vbInformation, "Tus Macros"
End Sub
Sub TuMacro3()
MsgBox "Hola!" + Chr(13) + "Esta es la Macro Nº3", vbOKOnly + vbInformation, "Tus Macros"
End Sub