Complementos - Añadir un submenú

29/07/2007 - 22:23 por LuisVF | Informe spam
Estoy intentando hacer (copiar) un complemento que encontré en internet. Es
para pasa de mayús a minús

Los procedimientos están bien:

Sub Mayusculas()
Dim c As Range
For Each c In Selection
c.Value = StrConv(c.Value, vbUpperCase)
Next c

End Sub

Sub Minusculas()
Dim c As Range
For Each c In Selection
c.Value = StrConv(c.Value, vbLowerCase)
Next c
End Sub

Pero a la hora de poner un submenú en el menú Herramientas me da un error.
Supongo que era un ejemplo para Excel 2000:

Public Sub PonerMenu()
Dim NuevoMenu As Object
Dim OpcionMenu As Object
Dim MenuHerr As Object
Set NuevoMenu = CommandBars.FindControl(Type:=msoControlPopup,
Tag:="Utilidades")
' If NuevoMenu Is Nothing Then
' Set MenuHerr = CommandBars.FindControl(ID:0007)
' If Not MenuHerr Is Nothing Then
Set NuevoMenu = MenuHerr.Controls.Add(Type:=msoControlPopup)
NuevoMenu.Caption = "&Utilidades"
NuevoMenu.Tag = "Utilidades"
NuevoMenu.Visible = True
' Set OpcionMenu = NuevoMenu.Controls.Add(Type:=msoControlButton)
' OpcionMenu.Caption = "Mayusculas"
' OpcionMenu.OnAction = "Mayusculas"
' Set OpcionMenu = NuevoMenu.Controls.Add(Type:=msoControlButton)
' OpcionMenu.Caption = "Minusculas"
' OpcionMenu.OnAction = "Minusculas"
' End If
' End If
Set MenuHerr = Nothing
Set NuevoMenu = Nothing
Set OpcionMenu = Nothing
End Sub

Public Sub QuitarMenu()
Dim Menu As Object
Set Menu = CommandBars.FindControl(Type:=msoControlPopup,
Tag:="Utilidades")
If Not (Menu Is Nothing) Then
Menu.Delete
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
QuitarMenu
End Sub

Private Sub Workbook_Open()
PonerMenu
End Sub

Me da el error 91, supongo que objeto vacío. No sé muy bien como crear ese
submenú. Ayuda, please :)

Gracias por responder

Preguntas similare

Leer las respuestas

#6 LuisVF
31/07/2007 - 16:38 | Informe spam
solo existe un ligero *inconveniente* con los codigos en el archivo que
adjuntaste
[que no habias comentato y tampoco resulta -lo suficientemente- *obvio* de
las consultas efectuadas] :-(

-> todos los procedimientos estan en el modulo [de clase] del objeto libro
[ThisWorkbook]

-> [generalmente] los procedimientos *normales/estandar/...* se ponen en
modulos de codigo *normales/estandar/...*

-> prueba insertando un modulo de codigo *normal* y MUEVE a ese modulo
TODOS los procedimientos
EXCEPTO los -procedimientos privados- del libro [Workbok_Open y
Workbook_BeforeClose]

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.



Ejem, copié, pegué y a la primera :| Ningún problema

Esto supongo que es muy básico pero los procedimientos se ponen siempre en
módulos de código y los procedimientos correspondientes al libro o a las
hojas se pondrán en su correspondiente módulo

Por cierto, este ejemplo lo saqué de una pagina web que me descargué entera
hace unos años y parece que no está ya en línea. Según el registro era
www.sistemaslym.net y hay un artículo tuyo (supongo). Pone:

27-Jun-2002 Este mes viene con algo muy interesante, nuestra primera
colaboración y que colaboración, un muy interesante y recomendable artículo
de un muy buen programador y amigo, Héctor Miguel Orozco Díaz, trata acerca
de la seguridad en Excel y lo pueden ver aquí...

Y el artículo es ¿Cómo puedo proteger un trabajo intelectual desarrollado
en excel?. Por Héctor Miguel Orozco Díaz
Saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida