problemas con commandbar de un menu personalizado

15/08/2007 - 23:46 por Karina | Informe spam
Hola

Mi problema es el siguiente estoy haciendo un menu personalizado para una
macro, pero tengo un problema con respecto a un submenú en el cual utilizó
marcas de verificación, es decir que cuando un elemnto del menú esta
seleccionado otras opciones del ménu se deshabilitan y así viceversa. Pero
cuando lo intento hacer me marca un error de "Object required" y nose a que
se refiera.

Este es parte de mi código:

Private Sub IniBN_Click()

'Dim myBar As CommandBarControl, myBar As CommandBarControl
Dim myBar As CommandBarControl
RemoveMenu
Set myBar = Application.CommandBars(1).Controls.Add(msoControlPopup, , ,
, True)
With myBar
.Caption = "&MÓDULO DE ZAPATAS"
.Tag = "Módulo de zapatas"
.BeginGroup = False
End With
If myBar Is Nothing Then Exit Sub

'Set myBar = CommandBars.Add(Name:="foundCFE_CB", Position:=msoBarPopup,
temporary:=False)
With myBar
.Controls.Add(Type:=msoControlPopup, Before:=1).Caption = "Archivo"
.Controls.Add(Type:=msoControlPopup).Caption = "Tipo de Análisis"
.Controls.Add(Type:=msoControlPopup).Caption = "Opciones"
.Controls.Add(Type:=msoControlPopup).Caption = "Ayuda"
With .Controls("Archivo")
.Controls.Add(Type:=msoControlButton, Before:=1, ID:).Caption =
"Nuevo"
.Controls("Nuevo").OnAction = "Hoja1.Nuevo_Click"
.Controls.Add(Type:=msoControlButton, ID:#).Caption = "Abrir"
.Controls("Abrir").OnAction = "Hoja1.Abrir_Click"
.Controls.Add(Type:=msoControlButton, ID:=3).Caption = "Guardar"

'Corrección hecha: Se sustituyó "Controls("Abrir")" por
"Controls("Guardar")" 16-06-2007 KCF
.Controls("Guardar").OnAction = "Hoja1.Guardar_Click"
.Controls.Add(Type:=msoControlButton, ID:=3).Caption = "Guardar Como..."
.Controls("Guardar Como...").OnAction = "Hoja1.GuardarComo_Click"
.Controls.Add(Type:=msoControlButton, ID:#).Caption = "Archivo Cargas"
.Controls("Archivo Cargas").OnAction = "Hoja1.ArchivoCargas_Click"
.Controls.Add(Type:=msoControlButton).Caption = "Salir"
.Controls("Archivo Cargas").BeginGroup = True
.Controls("Salir").BeginGroup = True
.Controls("Archivo Cargas").Enabled = False
End With
With .Controls("Tipo de Análisis") 'Tipo de submenu con marca de
verificación
.Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Individual"
.Controls("Individual").OnAction = "Hoja1.Individual_Click"
.Controls.Add(Type:=msoControlButton).Caption = "Conjunto P/Torre"
.Controls("Conjunto P/Torre").OnAction = "Hoja1.ConjTorre_Click"
.Controls.Add(Type:=msoControlButton).Caption = "Ejecutar"
.Controls("Ejecutar").OnAction = "Hoja1.Ejecutar_Click"

.Controls("Individual").State = msoButtonDown
.Controls("Ejecutar").BeginGroup = True
.Controls("Ejecutar").Enabled = False
End With
With .Controls("Opciones")
.Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Tipo de
Cimiento"
.Controls.Add(Type:=msoControlButton).Caption = "Especificaciones"
.Controls("Especificaciones").OnAction = "Hoja1.Especificacion_Click"
.Controls("Especificaciones").BeginGroup = True
.Controls("Tipo de Cimiento").Enabled = False
End With
With .Controls("Ayuda")
.Controls.Add(Type:=msoControlButton, Before:=1, ID:=3).Caption =
"Acerca de ..."
.Controls("Acerca de ...").FaceId = 133
.Controls("Acerca de ...").OnAction = "Hoja1.Acerca_LBL_Click"
' .Controls("Acerca de ...").OnAction = "msgbox ""Hello!"""
End With
' .Controls.Add().Caption = "Custom0"
' .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom2"
' .Controls.Add Type:=msoControlButton, ID:=3
' .Controls.Add(Type:=msoControlComboBox).Caption = "Custom1"
End With

'CommandBars("Custom").Controls("Custom1").BeginGroup = True
'If myBar.Controls("Custom2").State = msoButtonDown Then
' Remove check mark next to menu item.
' myBar.Controls("Custom2").State = msoButtonUp
'MsgBox "Custom1 is now unchecked"
' Else
' Add check mark next to menu item.
' myBar.Controls("Custom2").State = msoButtonDown
'MsgBox "Custom1 is now checked"
'End If

'Dim newSub As Object

'Set newSub ' CommandBars("Custom").Controls.Add(Type:=msoControlPopup,
Before:=1).Caption = "NewSub"


' With newSub
' .Controls.Add(Type:=msoControlPopup, Before:=1).Caption = "NewSub"
' End With

'Dim newSub As Object
' Set newSub = CommandBars("Worksheet menu bar").Controls("Tools")
' With newSub
' .Controls.Add(Type:=msoControlPopup, Before:=1).Caption = "NewSub"
' End With


''CommandBars("Custom").la

'End If 'Not foundflag

'myBar.ShowPopup 12, 200

End Sub

Sub Individual_Click()

Dim myBar As CommandBarControl

'Set myBar = CommandBars("foundCFE_CB")
Set myBar = Application.CommandBars(1).Controls.Add(msoControlPopup, , ,
, True)
'If (myBar.Controls("Tipo de Análisis").Controls("Individual").State =
msoButtonDown) Then
'myBar.Controls("Tipo de Análisis").Controls("Individual").State =
msoButtonDown
'myBar.Controls("Tipo de Análisis").Controls("Conjunto P/Torre").State =
msoButtonUp
With myBar
.Controls("Archivo").Controls("Nuevo").Enabled = True
.Controls("Archivo").Controls("Abrir").Enabled = True
.Controls("Archivo").Controls("Guardar Como...").Enabled = True
.Controls("Archivo").Controls("Guardar").Enabled = True
.Controls("Archivo").Controls("Archivo Cargas").Enabled = False
End With
End Sub

Sub ConjTorre_Click()

'Dim myBar As CommandBarControl
'If (myBar.Controls("Tipo de Análisis").Controls("Individual").State =
msoButtonDown) Then
Set myBar = myBar.Controls("Tipo de
Análisis").Controls("Individual").State = msoButtonUp
myBar.Controls("Tipo de Análisis").Controls("Conjunto P/Torre").State =
msoButtonDown
myBar.Controls("Archivo Cargas").Controls().Enabled = True
myBar.Controls("Archivo").Controls("Nuevo").Enabled = False
myBar.Controls("Archivo").Controls("Abrir").Enabled = False
myBar.Controls("Archivo").Controls("Guardar Como...").Enabled = False
myBar.Controls("Archivo").Controls("Guardar").Enabled = False
myBar.Controls("Archivo").Controls("Archivo Cargas").Enabled = True

End Sub

Espero puedan ayudarme de antemano gracias.

Saludos
 

Leer las respuestas

#1 Ivan
15/08/2007 - 23:56 | Informe spam
hola Karina,

me da la impresion de que esto lo tienes como comentario,=>

'Dim myBar As CommandBarControl, myBar As CommandBarControl



por eso, probablemente te dice que te hace falta un objeto, por que
realmente no lo has declarado

prueba a quitarle al comilla simple (apostrofe) que hay delante de la
linea (esta comilla convierte la linea en comentario, y vba no la toma
en cuebnta)

si sigue sin funcionar comentas (no he mirado el resto)

un saludo Ivan

Preguntas similares