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

#1 Héctor Miguel
30/07/2007 - 03:38 | Informe spam
hola, Luis !

Estoy intentando hacer (copiar) un complemento que encontré en internet. Es para pasa de mayus a minus
Los procedimientos estan bien: [...]
Pero a la hora de poner un submenu en el menu Herramientas me da un error. Supongo que era un ejemplo para Excel 2000:
Me da el error 91, supongo que objeto vacío. No se muy bien como crear ese submenu. Ayuda, please :)



1) el error se debe a que al momento de no encontrarse ya instaladas tus utilidades...
el codigo *trata* de agregar controles a un objeto NO ESTABLECIDO [en la linea que dice]:
-> Set NuevoMenu = MenuHerr.Controls.Add(Type:=msoControlPopup)

2) este error *obedece* a que el objeto *llamado* [-> MenuHerr <-] no pudo ser establecido :-((
por que ?... porque la linea que establece la referencia al menu herramientas [con el numero de ID:0007]
-> ESTA MARCADA como comentario [observa que tienes varias lineas que se inician con un apostrofo] :-((

3) solucion ?... -> ELIMINA todos los apostrofos en el inicio de las lineas *comentadas* :))

-> otra posibilidad es que estuvieras *tratando* de usar este codigo en la version 2007 -???-
el manejo de los objetos *command* ha pasado al objeto *Ribbon* [la cinta de opciones] y es totalmente diferente -?-

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

__ el codigo expuesto __
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

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
Respuesta Responder a este mensaje
#2 LuisVF
30/07/2007 - 04:04 | Informe spam
Saludos Héctor

Uso Excel 2003

Descomenté la línea y me sigue dando el mismo error. Ya había probado con
todas las líneas descomentadas. Por si había algún error en los if comenté
todas

Te pego, tal cual, el procedimiento PonerMenu, con los comentarios del
autor:


Public Sub PonerMenu()
Dim NuevoMenu As Object
Dim OpcionMenu As Object
Dim MenuHerr As Object

' Busca si el menú ya esta existe
Set NuevoMenu = CommandBars.FindControl(Type:=msoControlPopup,
Tag:="Utilidades")
' Si no lo encuentra la variable es Nothing
If NuevoMenu Is Nothing Then
' Busca el menú Herramientas y devuelve una referencia a el
Set MenuHerr = CommandBars.FindControl(ID:0007)
' La posibilidad de que sea Nothing es remota pero hay que considerarla
If Not MenuHerr Is Nothing Then
' Agrega un sunmenú al menú Herramientas
Set NuevoMenu = MenuHerr.Controls.Add(Type:=msoControlPopup,
Temporary:=True)
With NuevoMenu
' Le ponemos Titulo
.Caption = "&Utilidades"
' Usamos esta propiedad como utilidad para la busqueda
.Tag = "Utilidades"
'Garantizamos que este visible
.Visible = True
End With

Set OpcionMenu = NuevoMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
With OpcionMenu
.Caption = "Mayusculas"
'Le asignamos la macro que queramos ejecutar
.OnAction = "Mayusculas"
End With

Set OpcionMenu = NuevoMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
With OpcionMenu
.Caption = "Minusculas"
.OnAction = "Minusculas"
End With

End If
End If

'Liberamos la memoria
Set MenuHerr = Nothing
Set NuevoMenu = Nothing
Set OpcionMenu = Nothing

End Sub

Public Sub QuitarMenu()
Dim Menu As Object

'Busca el menu, si lo encuentra lo borra, si no, no hace nada
Set Menu = CommandBars.FindControl(Type:=msoControlPopup,
Tag:="Utilidades")
If Not (Menu Is Nothing) Then
Menu.Delete
End If

End Sub


Y me voy a dormir, si respondes mañana lo veo. Gracias


"Héctor Miguel" escribió en el mensaje
news:%
hola, Luis !

Estoy intentando hacer (copiar) un complemento que encontré en internet.
Es para pasa de mayus a minus
Los procedimientos estan bien: [...]
Pero a la hora de poner un submenu en el menu Herramientas me da un
error. Supongo que era un ejemplo para Excel 2000:
Me da el error 91, supongo que objeto vacío. No se muy bien como crear
ese submenu. Ayuda, please :)



1) el error se debe a que al momento de no encontrarse ya instaladas tus
utilidades...
el codigo *trata* de agregar controles a un objeto NO ESTABLECIDO [en
la linea que dice]:
-> Set NuevoMenu = MenuHerr.Controls.Add(Type:=msoControlPopup)

2) este error *obedece* a que el objeto *llamado* [-> MenuHerr <-] no pudo
ser establecido :-((
por que ?... porque la linea que establece la referencia al menu
herramientas [con el numero de ID:0007]
-> ESTA MARCADA como comentario [observa que tienes varias lineas que
se inician con un apostrofo] :-((

3) solucion ?... -> ELIMINA todos los apostrofos en el inicio de las
lineas *comentadas* :))

Respuesta Responder a este mensaje
#3 Héctor Miguel
30/07/2007 - 04:23 | Informe spam
hola, Luis !

Uso Excel 2003
Descomente la linea y me sigue dando el mismo error.
Ya habia probado con todas las líneas descomentadas.
Por si habia algun error en los if comente todas
Te pego, tal cual, el procedimiento PonerMenu, con los comentarios del autor: [...]
Y me voy a dormir, si respondes ma#ana lo veo. Gracias



el codigo tal como lo expones *del autor*... [a mi]... me ha funcionado sin problemas [xl'97 a 2003] ;)

[probablemente]: revisa en el editor de vba, en [menu] herramientas / referencias...
-> si aparece alguna que diga FALTA:xxx o MISSING:xxx -???-

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

__ el codigo expuesto __
Public Sub PonerMenu()
Dim NuevoMenu As Object
Dim OpcionMenu As Object
Dim MenuHerr As Object
' Busca si el menú ya esta existe
Set NuevoMenu = CommandBars.FindControl(Type:=msoControlPopup, Tag:="Utilidades")
' Si no lo encuentra la variable es Nothing
If NuevoMenu Is Nothing Then
' Busca el menú Herramientas y devuelve una referencia a el
Set MenuHerr = CommandBars.FindControl(ID:0007)
' La posibilidad de que sea Nothing es remota pero hay que considerarla
If Not MenuHerr Is Nothing Then
' Agrega un sunmenú al menú Herramientas
Set NuevoMenu = MenuHerr.Controls.Add(Type:=msoControlPopup, Temporary:=True)
With NuevoMenu
' Le ponemos Titulo
.Caption = "&Utilidades"
' Usamos esta propiedad como utilidad para la busqueda
.Tag = "Utilidades"
'Garantizamos que este visible
.Visible = True
End With
Set OpcionMenu = NuevoMenu.Controls.Add(Type:=msoControlButton, Temporary:=True)
With OpcionMenu
.Caption = "Mayusculas"
'Le asignamos la macro que queramos ejecutar
.OnAction = "Mayusculas"
End With
Set OpcionMenu = NuevoMenu.Controls.Add(Type:=msoControlButton, Temporary:=True)
With OpcionMenu
.Caption = "Minusculas"
.OnAction = "Minusculas"
End With
End If
End If
'Liberamos la memoria
Set MenuHerr = Nothing
Set NuevoMenu = Nothing
Set OpcionMenu = Nothing
End Sub

Public Sub QuitarMenu()
Dim Menu As Object
'Busca el menu, si lo encuentra lo borra, si no, no hace nada
Set Menu = CommandBars.FindControl(Type:=msoControlPopup, Tag:="Utilidades")
If Not (Menu Is Nothing) Then
Menu.Delete
End If
End Sub
Respuesta Responder a este mensaje
#4 LuisVF
31/07/2007 - 06:03 | Informe spam
Hola Héctor

Pues nada, que no va

Vi las referencias y las 4 primeras están marcadas y no veo que den ningún
error.

Guardo el archivo como complemento y aparece pero bueno, ya da error como
archivo xls y lo mismo como xla

Si me dices que te funciona te envío mi archivo. Si te funciona quiere decir
que el problema es de la instalación (Excel 2003 + SP2) y no del documento

Es mucho pedir :| pero te lo envío y a ver si te funciona

"Héctor Miguel" escribió en el mensaje
news:%
hola, Luis !

Uso Excel 2003
Descomente la linea y me sigue dando el mismo error.
Ya habia probado con todas las líneas descomentadas.
Por si habia algun error en los if comente todas
Te pego, tal cual, el procedimiento PonerMenu, con los comentarios del
autor: [...]
Y me voy a dormir, si respondes ma#ana lo veo. Gracias



el codigo tal como lo expones *del autor*... [a mi]... me ha funcionado
sin problemas [xl'97 a 2003] ;)

[probablemente]: revisa en el editor de vba, en [menu] herramientas /
referencias...
-> si aparece alguna que diga FALTA:xxx o MISSING:xxx -???-

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

__ el codigo expuesto __
Public Sub PonerMenu()
Dim NuevoMenu As Object
Dim OpcionMenu As Object
Dim MenuHerr As Object
' Busca si el menú ya esta existe
Set NuevoMenu = CommandBars.FindControl(Type:=msoControlPopup,
Tag:="Utilidades")
' Si no lo encuentra la variable es Nothing
If NuevoMenu Is Nothing Then
' Busca el menú Herramientas y devuelve una referencia a el
Set MenuHerr = CommandBars.FindControl(ID:0007)
' La posibilidad de que sea Nothing es remota pero hay que
considerarla
If Not MenuHerr Is Nothing Then
' Agrega un sunmenú al menú Herramientas
Set NuevoMenu = MenuHerr.Controls.Add(Type:=msoControlPopup,
Temporary:=True)
With NuevoMenu
' Le ponemos Titulo
.Caption = "&Utilidades"
' Usamos esta propiedad como utilidad para la busqueda
.Tag = "Utilidades"
'Garantizamos que este visible
.Visible = True
End With
Set OpcionMenu = NuevoMenu.Controls.Add(Type:=msoControlButton,
Temporary:=True)
With OpcionMenu
.Caption = "Mayusculas"
'Le asignamos la macro que queramos ejecutar
.OnAction = "Mayusculas"
End With
Set OpcionMenu = NuevoMenu.Controls.Add(Type:=msoControlButton,
Temporary:=True)
With OpcionMenu
.Caption = "Minusculas"
.OnAction = "Minusculas"
End With
End If
End If
'Liberamos la memoria
Set MenuHerr = Nothing
Set NuevoMenu = Nothing
Set OpcionMenu = Nothing
End Sub

Public Sub QuitarMenu()
Dim Menu As Object
'Busca el menu, si lo encuentra lo borra, si no, no hace nada
Set Menu = CommandBars.FindControl(Type:=msoControlPopup,
Tag:="Utilidades")
If Not (Menu Is Nothing) Then
Menu.Delete
End If
End Sub








begin 666 Complementos.rar
M4F%R(1H'`,^0<P``#0````````##4`8" ```!>```"S%6XID$O_S8M,Q `( ```$-O;7!L96UE;G1O<RYX;',`\.#_;Q0AT14,C-% & (OO<^"Q(2#
M!" 0- ^B0P0"$\7P`2!#:S%\!)Q DQ(^$&FQ8L6 L#%F8UF(8F0;Q-CT(]<G
MAMS6R>CFL;W9&$)K8WLW8#;ULW?2. X]YKU[OHT2/?1SWG.:;..;"./4
MMY=WF"6+,57?;[BQ?$;">^'/<EXL7>]OX5575UuU5]S_*55_JJ_UUu_N
M?OZJK]?:OO;M9W,Q+B6<7-_%E[WR/-SO/%C)=@)<*^OY,3&0FTD?84LRI,1*
MPCPDM/7Y?_Y/C/^(8R##,X47C8#-CB2*2PYH<H/*#E48UY4AEBF='EQRX\P.
M8'F1YH>;',,?6#SP](//CZT:@] .;'H4!OKB&B*:,<Z/2CTX],.>14%C
M^'I$^UV(GH?(`8%U0G@=;D5V*'Y6:!#>'@*''*5IJLW^O?A_SV$S[/
MKI6F;_EOM%^/`UQJ>?5JVT$]`8W8K4Y!P/J64N)-)G(*<B+W=BRA5MQ;,383
M4A81#%7B[(#!J!60MN'_V03,+Q38DND%,JC)*%J?6?TSWRM?4A1('G5\L,9*
M/?MB*%LCC7U_J$ZI(!GTR1F[+D:\"X9D[N=(YI"@!>ALXIR$X732%9<&
M4%F0^]>4:!]H!T(Z(=&/4#U(]4.D'2H"M80IBFM/IMJS=.0,?MM#*@=2.J0E
MQKBE8.M'V0_F#KAZ\>P'7H .S(&0IL819#V1\4&325;6$?-'MA]H.S'VH^V.
MCDJM"#<=J-P.V&Y'N![D=N-T/=#-D:=E+@;P;T;X?;CN1OQP!W0]X/N![T9L
MYG<E-\/YP]^/NA]V.".39!B2Q8"];K?PR7]H9N&(('.>""_(7\LZ"?RG++XR
M!=6YN7C=Y;/5/_HR;'(#=(D<H$J-:';@7XP\?22RP)%"LK=T_VCVYW=J]>[O
[*@C=+$N?_Y@?VSV_]XLZT*&W2TXLMI]IH*1"?W:ITYZGZ$.9L>5(0UZ!
M[#W#S- "8W,AE_W?#5R?=\P2:@?AT&'YW_\REXI-^?7T09KV;$S@?&@
M814"Y'EJ=+U@=^'5D-#A6UH9U31=W: F><@D<[7I@&[$%#[/%RGQ-.G#S&T\
M4*M!$4V7P9*16/![MP43:DJVXM.'8ID1<&HU29Z?5U@";#K-Y%2TY__%TW8*
MFJ(N[;D.FCUB4^/&V+HUA?O LNP+JQIC^2CWD;Q_[$78].OC? N)UG3R(Z
M;?K(:SD9#9"8%Z?1?](_7?J2&E_Y2AI](F/A)W$R>:(G_%(60GCIB5T2]-(3
M;/#THY,G7PTUXF<%=?FZY>"Q),O!7CS$&2&&F469B"PO[0Z[@.P
M%6/=TWH/`!C<FP^>8E@:14OS<(69#G+2P7RRDW_7@'QB91[\7XDP\7#+,A]%
M'EF4=9>4CZG^&BY91-F*'E^P"#+'T694/_;"RQ^_+G1LPDQ6?CX_^WLZ^UL.
MQVYY_2CTQ__WD.8,@3KKDUYR>/+7K,NW>GKG /__(%-GJZ1_D."ZMD%;
MM)Y7&3_8)RXO/8PHIRWSP%A<J:Q4.X:_U#1)8'9:?229&:.3GIE!=2RN=E!1
MVP4?849]#3T6%>JX[/9"B+NQ.T]:225\VK!7JZ*_!*Z5!N>7"<F/LX3\$?HC
MYP_VCI4$,Z*_10(\>&U3!Z6Z1/^"PQ)N76)N*E.':G.>CS;H \FQQ[DY#!
MX$ZOP\;3O0+I@'633+& 5L)W__N)60--+H3_J[;!SH;75^AP@+WC8>>KG2XZ
M38AKW; .M"+J>3/&&$(O9-DFZ+#'C5$(GII22-IV7O:LAI$*?U8![-T"`J 7
M5<C*74FC;*^6C78D-"A0USA.TO07X#8)J"ID] *N3ZX6P3BISX*#ODIRR ST
M`KEZ"9.FB>Y4;OW6Y>-[AZ_4=MU+ANXN7JG;W3DWVY/.N=TY<74!O<H%
MN:]O=W3^(F$]\*S_UP-B*_,"_2&C<V:?32"K5))*!W_K5 G3PG&Q5I\M/K"/;A<>]!<[W8=?;(^:0PS\($P5.K5S<Q[GG."+ETKF? 2>0 \ITU>M,1Q@
M7H67#'XDQ.KA'VZ_ZE]N@"IA-@&HI#EV`+C%3RC]U%7>X.>1DRJ!%G-X6L6+
M!!Z%X]G@^J6[=PYP-O;1QG#GJSF$:Z^;J)5LY?Q!K ,VV R:DDV9&H';
MR #OC(\VU/VR*56\KT/$Q9]M-7$5.N60L2Y7W1-8$9IU:W4`48;9MMO
ML&]P'9K5)L-K.);:VF>[FY:4E/ ;-WZ2?@--\TZ10M+"DH*73B9M%S*HDHOZ
M<NEH8BT>IW]Y+?.UV'-:MXW_-9V+[#;2\*KP6O?N96VJ+ERW@,F]J[S/6V&"
MK;AN7#O#S8UML+S65E<W4LVJMZ^>A7DQ-63FX?.Q82W-2YC,;Q=%:\(#NX#V
MX=,>Y7U*ZAC$V-U:X<Z$6!!C9.Z2(=2)U<*.%&K]1GL6[S<BJ5%*N#&]4JHP
M5N&1_6O%+%R[BY08#IZ\[B?V<9FZO+BQB'<U$1-Y.\!D*>4WEKLGSZ
M-;$$7G0=-%#V#EGO8$5=+K,*V/+92#K<$+VKJU>636N>]QPU.%AEJ1C7;K
M"#.*6 HHL;'7ACU)\MKA::MMA=.=YZSV\PGU-?:[J#V"33M[QC7OG%.U_&Q:
ML*R9PEW-;+<N6T:C9+E4K<R#J-"(R'7Q*7;=#S$EO73]M`]/M(W<83U\]
MK8FQJ+BX#?$B;-[E_/U;IXG;4_S8WSUW.V0KN-MJ];</WJ2]?8/7UT^PRQ63
M?<Q"F]E%'61)3FT]O%OL01_1JT)/1+)-T_2]Y%5=>GP'(G^'N]@6\5W8[E+2
MUNXX2E;_$Q4WME;N5_==]0_V4%YK&Z^X="S3?"-=Q8XJN\]YA44NGA5<N
M=P&','/.L%"U;MRE,X%X4;KUJW:4M;85,[(PE=A!@^HZT5JN
MI*?.J=N+BOW/L-V#06EI\K</>+I;VO4-D>W;9>X>B>/XWH9K=S\#MNX9\N:>
M\QG0YYOE:=KN8MNY;P<XI[[^+U^74M_>U7Z,_WLIFZCK-)2?V34_H=0_GVL]
M;6W^^JO;M[:3%WJV.M\B!ZN?44VCJ!/V_!H:J63FXVDV\Z6;/_LHB77 =O>"
MNGZAN^O+KZ&@\C16[;^V2V3]NUDKSR;!]<O7SIS>U<%2,=A.PZ?YZSA*/F_J
M55K=/][K_(RGAY377=ZQ>0.5]'02O+H^+*N;13>.HWHO)YDQ
ML_Q3@+JYSP]!E(P7+@<O/O6##]UOKS>LGFPKJ! >O)Y3;W["3]25^
MM$GCZGK_SRW!DN/II+RN-RO5ZZ4T9EO;0RW]-SW*! CVP6]=YV<'07/YI^#W
M[,RW?F2E>\:W[;R^?I>A*>[-I;"#);BPP/^KI5S+['\DWHOZ>9-S\I-?GZ]?
MF)KR$ZW<<O0QM/(2Z$59U:P>YT%=E\T^:7ZFOO$F\W];5<YG^?7^"E)ZOL>)
M7X0M=+.EVVW=NX[.ZOG5[UEXQ[AQSA>QM_N;==8RMU/-;3_+:F5L<(%;/A)
MK=<_;?JM^W[YXW7:KR)/O&'N['W>!5=CTEOJF_M5\[0L/*K__&DVO;14Y^I4
M[O^9UWV;YWV&<M*6'#X+>T\5GOTU/Z/$V[9SN'MRR<U#OA_QSM0W>,7#[+6'
M?-GKUVYIL&['7\',?9S/NK]WMWU>^<O/S9G9]SV2Z__?I3+'%OD<W7A++((H
MV4)ZM/%LTEGKKA8R?A_PN;(73MLD+/5\HKGL"S:2K4C:(Z^*/_ >;313E;1#
MY#\?K*Z3G0%"I>B?Q-G=5\UI8VQL$B=RC 9]M5]T:E?.W^CGK_KM77!C#KM'
M38)ON79W\I".N7N[_02W`!N698(EJD*WV>$K.;V_SN#8ICO _C<?N]F:]*)M
M`@#FM<[A:'D5O/B3+.WP_4FN3$ZCCB^X"R91)VC*_7"_X\>^\J(G1O
MEX6XP!&OXZ/X^C%QC5Q3;^(@I,P\Z/PX(RVKPMR6%^^HR$?R$1R9%+.!
MJ^ !3*+B>VCB21.-Z3Z(!+P"'0)64(= EEO*50+70)[7P$J6(? 2Q<%Q\%\`
M-)J][Z_5Z[;50!PPQA3%:LWH2RKM7_PWT9/H!]^ >%TJ@$'PU7',K
ML#CL/.­R&UTR*1J"KZ2'^ Z';2_T=&0LB34DBV(X!,0"-H20)4L5^I-6 -
MTX&?WW$RRH%&ERWE)JEW7 (3I<U7!_53F,4E7,LG"DQ=M"%,LG&(TDSM%V56
MMYD>?T.*`I'(*1[\4 69++R>3)(JQNJ1&F-<.*?:*P'[#5XR8Q7Y/)-
M_IF3A/%+DTYR<C,I)+&776D);*0T!X>,_A$:D:1)^:39>$:9)[4FSED:XDMR
M:IT22%<Z\ITNV736*+J\D,49^< GR*XP+-NN4$3JKT>+&VR.26:!Q!,M(]X`
MM[2#,F!O_T'7;KD5B&<>OR^\-0SA3A'VE^&DDCV3$U6LLH !"#:9O[P=_]P?
M?BS)P?19<9H33(;,'V$M'J_CFN/0]_L/H_?SGX?W,_/79S((PZA9&!&K
MV7QM[__?ZM?P?J]'Q])93_':CF?1<5G#<WI!EC;;QH^JD\U]4K;2
MQ6U?^J7[W4><Q'%J5__)KD\4^'?:5R-LD5BSC]OTB4!S=,5:$YS.PFUKB3IM
M"BX,Z%KQW:+$J9TC*IXG#0=&.D'3#5!*QN<`V 9RM\)H?Y0A]PIT`16O3B:0
MW(]M1CIN%E%WU(M^?&BL`-Q7Z<,9TX)^#(SB1&3.N0B]
,#2?>JV3(A;R%I+:9T6(1PD".]/3RH^\XLP,P9Y*%3-]TP"G0P
+@'P]R(5[ZUSA;RN74358US*#,=P,R'%-?]E'G[(,C;([['^D?)&TX
M%-'"I-&&`GM+QCA$.)]/WP(*1>[M0>]DD'R3A<=@28!+A&;[JW7XEE6"-4TY
M)?$N;S,Y*O?QC3KH(9R>,$_62%'5IMD]FFN/m%P#J#=.OOK_B *W<)J2%P
M4X'BH1PX:)0ZI$S7S:)F"EY=K0&";YU_NQ+-W=LNPDF^?,P]SO=^Z[VU364(
MRB6)<4% A%?MCT[ NW:L"4M/:\QTE,+^K3,9M,NV"%'\%\6UFNPD]>'
MQFC!,-;9,QNUQ=OOA20&K1=A)E0^=C'Q39XY#-_\A)8ZBP:-/.2ED]@S F
M^8O5IU%_3*E@%'\HET4E=@49`5(0LS8`*S3]@0KB7DR."0IL95<A>JR;]&
M0?V&: HTIXMS>:T_.XQ(/18*@+,L+B48E0HO0ZS);KD$+HF'9;F.%8*Z-]CQ
MDRD7PWQ:M)"?,GKH%TFE\!>9?ZW\/;W1>[;KLCO#BR4.W)DOW\P>%)8M<*ID
M$HIE:@)[0"W$B?]L+7;2%4MB+:HR"Z 4]D2\S)*S[( *IQEBLF&CR3,%H2\\
MBC?,1PTJW,Q:N'&3R.?-+AXR*$4Z(J>=KK+)'@N: XU'XM'
M61E4M"$7+LPA+W<(^8-:"[8&._2 R;:#OU %2S14T0M*>(6[;Y1-40`
MOW4HYVZ/%7LZGE??<<+S=YAFL5MO5!9'5N,H<1'",<:(3-7O7YT&;
MQ2&\/V65-O!DTU@%>0-M/@;P;(@K:DO:#MQ[T?$(+!'&)K3%RB4F2.9(=_-'
M[>,M98T1"]0*PXBZ9)*U!M'>D26($;.W1/FO7T"TOF0:]-$RU7$.&F2I6&;U
M%5/F"H=,9L,66:[$W@:Q%KF2%N2F4P#6*D7%JF(6"M4REPG^&1Z$AQB-B KL
M$!0<"ZVJH0QCWA>,V.E 9Z)+P4X5N:1T)!HOQ)^W7EM[ZXFR"O);D2%KY,AW
M\V1 2P7-DO-OB>@6DX4=%?BT2S$WG5G-Z"H,ARI(=\Z-H2)#%2R&*,
M1!NLQE06&Q"P8$MQ$=^5`^.86E\H$)M^VPQ"U[^2$#H8R?Q9"E23PT(RP7)"
MXA!:U\5+(RUQI"JY`^23FKO2#+'_B+^@):):?&I0XL;^B3\/#)_ ;QT`
M;,K YY,%9T+`6JN8'C9V;6R>H7!BKV"1,<TG44*2TT)U$3-618K$
M%Y,HZJ )_$F/?36$6B4*N&1\E)6+"BDJ*Q98\->K0UHT->!_H1 <S_RZ*RID
MSSQPG2B/#33W&1=\K#-!$YG*CE:&C[DT;$:+*\87(1%I4Y)5BUBMQ<HYLUA9
M:T^V36OFT8&G^,1ZLG%8ALDMUO2/B#YB6+-*G.K:7BU:QA+&/(TWN'0%H
M\/+6AYU:'E1-"[D(-9OTB\L6JNN<+LHYF4B&&6:/)IB'H+Z45DF?F2\>Z4S\
M`S+B4"%?GP11Q:&W7;U:/B6V#9B55A4MQOW5JK@;`ES<!?/W+>.<0'>W( (8
MFGT9\\0@>NG#U:(4NSQTJ*>Q%HQ**Q" 764*'OAOD%^Q3<@@%' @TY,\.,(X
M@(SCSPSTZ+$^¿:+.&O'4$01#8UX'1M*Q#@US9:1: B'Q5"P(A^`
M_SVONMZ#%H^4I##0-&/"UP6U&H==R</C7O@)G)XB]!&R+JI7OL9P6.Q.
M4G3R1P%2+L9P7**#$4/QR^6.Z0B^$OD&:#(7[DZ*%%B3Z?E;LR'_+[+$YF
MS!6U%"]!9S9D4#0I!<8C3/(F#C?/Y3/XTA7^222-Z,!5M%[J801Y#]
M8S7,F09(@IO(=<_"S52J-,PY5Q=?T\C).&45CW=*-Z .&/KULW3?IOB5:
M-*2A::<2B]F;AC<T3KZ9.7,)O^P3PZ$G*O?0'6$AXH+KW;IPZC6QF);IO)F,
MD]3U\MEG>I^.Z-L"W"-B]PX'0KD75\F1TX7>$)5/'<?TT%#]#JCD.OXR'
M;,8>B@)ZB4HA;\+WOK(?;A8_`WNS9WE_*!@*3#6)]Y?B9Z0YA_PW?B/N?FNQ
M2KFC!"FK+[)MV@/0#^!THIP+/JP$[46Q#MK!5H)+]T*@R**-B5JI>
M+==3"=4';%?J0VQ5<4AH.5SW1O3/8,78FX>,07 =]6;E?*@6I\'QV>=B; (1
M'>!69&6?@?-$7VZ`AJ!M"7C(N#$",[;"#7G$^"?P?N17(%/<
M";G,88I7)ZR5;@WLY->=PW33[D*O7A>>K.;%4*@.:6![4_C7"GS]_2YS(@&(
M^]. &-N:U&PL,'+46Z"=<'J*X+&U.0L9[1S][(D,47[UIU%5"1XAJ]H%V]@*
MI DX)L168%J,._*1H;@!90BLS^-L)Z%PN3V4)8)?'JZ";>BN)#',
MC+L(^/-"`C5ACO4G)>HAFH$V"9:E* ?2VQ0JJ0"=1"<2VJ+CT:)^ACW*HNK,
M><?6G!RU= 76%%_DB";$H;"(>JNH>K7A5Z^0R8^11;ZI093/\7D0+>V(;#PT
M83*!U9IXM9VKKRQ%J]_C&!%_\JED+L%QZ^+E,BR3G>)C(G=-"693R>P*N,MH
M>SZ*^:,5^4Q.;NY@/M#'#&I$X.'I5G$Y&LX/-'G#2F3 VY7#,Z1))6\@\H0_
MBIG__0LE_:%DAL2WL:'M(&>\:K^U1?IM?!_%_YHEDU?=[>LG>5V?KU/W_O:S
M<6?YOHLUI];9*\'X.=X7B[J=6X!7;\%_R&<(\;QK7]UUGIW6R+;J96X;JE2U
SQ8_G$&#02$&[@PE:K>N'+N#IHH:Z5V;9K^S\N"&"_:.GE!J>7W2
M.ZBH9+NPIE^O;N/N>="2]>%3J?M3F"9-?87+V[<N(#V@[*OX%L]=N?#
MM,%RA@>"EW0_Z_OFHZ_<;AU%IS-T52LK(>WU?._,`.01`2V'-MZK>-W=T#85
M,7,1LW=0_D)Q1>Z09+U@#=S(#=?B;RZYT94DO<;9F%4@/0YR
M,Y]R5Q!6;G'T.<=;;S,2LASCQS[WS"J2B>?G(^] '<H(M1 `/=W/G%:WH3O[
M<XK5JY[W`_3O0 A;(W=J)0=</5_H(LKAP-MN#I%MT!O?ˆX#7(?V[ES`Y=\
M<[I'.=OV?R&\@YS)Z6/0W9AFO?.'2KA(]+V3&'-VF<?.^NP(E%R%><B#G)^4
MFEIY<*KC96P#D.<M2MQ#66([A^]1.FYS.[`Y9-]SHO;!J/H\JVI^OVH
M#"+%%H?_@ UF#6MM;?LN0*0C;,]AH1>KOQ/\AR2Q+MWQCU,][B36S5<<?/_&
M5,\<138W-/CS]:PLPG5[QJ?"]P.*8Q/9W3J W.:C\OX")?P&;8B8HL
M*D,9X#)B.A4?F1;FH=O7[GSO\ K:^,V\#(-_MQ"*6Q*R',BOJ<_$.ZD+
M3W6L+B_OT8G]I&-M_F^:;&[L-E5;.O_[,@*&+JX9:N[X>.L3%M,\;'3UE=Q?
M8LYD@(.=[X,EH-59)(VW(S*>)NX9Q-*/WB(%0.M-XK^!A[TAP!]\/^(?!$?B
M]OYY3OT5'@$/H#^B/_H/AC\$?A#\,8<DE_(0\0IXH^(/Z8_^H_J#\8?U1_RC
M\<?%'Y _)'_,6J(_7Q/Q>/'*?8']D?EC^T/S$4_(*>:/SA_<1-_T$//'Z
M^21^DCK_#TB:?DM:UE00H*E6:U+IK@[TS?B R1X3]QLDA?)S.+IF7G03^U6\
M!:! #W#DQ/IAC619^\BS6WO+@YPG$ .4@![/)C=,4Y36]*DD[E*8
M9,&,O)IRYVCW](-^UV5,G*9J*?<P5=&?L$\Y'V!N";8!^N3[82[2V>N!
MS606E"THZ(;+/1;Z@&I?*I2\(%J=_.4,^TG ;H5&KL]I6[ -C;VEC9O[N*JH
MYN**ALUSF)T59W:SE?750;$Y= YB&\!U-/,XEWM4&F:&+<01.O:
M$X[RJX\'+^/AVWE4*AJ:NDJ8L0;$C4-JMKIZ!I!H&VG;5-5J(-59-6L&HHX+
M"AX54#?4XMW6\![[1NW)GR>W-RS;Q8[-C* ^3XKIXY?V>OBPX1,(#W<1DP;Y
MVX.CJSKP;WM;455!01,@V-?/U-sG!9I+K%2(.&:I7IVJ7KJ5SJUN6\]<W<
M&PC4Y9/W$Q3>8[Q=QZ_.)^996XEM6SBO=WKA3,',60O-4.U_8-G<BXQ#E)/>
ME9WV,IW]#[F4FN5+E58V2].@[W?@U]Y^H3IV'DSWIZ#C-)MLRTT1U^<%><,_
MN#>N]/Q*P76F:Y6]`+.\%C0^`QK\ZYV*[ ,OO*W.L_3ZP75$O#^9I;M([P>*
ML921W,+%H_ FX_:PR3X;W(I*/S(F"?F@>Z"A[I+&?7:O+G696YE2E'?;W]I'
MG^;?,N^S^HU_S]_->MR*7BWB1W*X9RT^\O+@_M]G>]^Y6YG7)J^Y5G]%<TB'
M1"M1U=#^>/CCYXS7SZ,)AL7,<ZDH_-Z(P'HY)F9YR8LBEYJX0_T9'[RI?##.
M^:19OH!ZF8\3H'ERI3Q\[3B %M+O]5^*YA5*E.O&&7378U%96[/NJ#$[-?6U
M&QK[$@``;[J815:DR<@N^37*A\ A*9Q(6)%C2,/35$WQT=;3&E_79C%\RYRQ
M36((M;,[6S,FS,!F*1F.*&ZK:X%73^ U2QASMI!B:RZ#WU6[V?C0*
M5$WZ*.K['$TTQAJ61#'H9\%5LP\,A<5FC#_I$8LJI!5EV:
M)OZ:.L''#_7<WHZ?XNTZQG_5_H&L\J?R;',%.RZ89Y'G`5<+*L+*O2RK•L
MJJDL52ISA8DUY,E2>T")OG(Z\.'U]S&8FH<8SG$Y8SF05.,YRU"B7J87(R9!
ML^5DYUDV,38O8\RZ>$N9(:.W?%JZQ&JEB4F)`.Y%J)-E>2TC1F:>P!J6#D[,
M?B5@*3>4AQLCNM!GFFV(6QW0HURDUTJ3-@;B1LJJ#NO4`[GR["M@&CP\:R!S
ME/A.36ONS5N7/-F=M+X3V.YZS.*^;#+4!5;'(&:(:+)2)2RIQO$%]'=O2P'L
=S'J%7MJ&K4HYCW;U\,BYW04+@/^[.]V5KAKP!;43B.$XEA@]X7F84F,94
MG>Ï&=+JT+Y_DY']*U#R-H3[\CE"<8]<8C\+2;S`\9-9;WSUOPC$?2[9&,A
M78_;C&$U(K9\F=5"%O&0?@-[%P?GN Q7ZCE,@/7E$-8KW`GF%R,H%*E\
MGC$/)0O^, >>;H+\W"$P5H(*W!S?\E?"^+E.HA.LMU -?;(3!.*D!.X.0')\
MO?49"I.J#Z^Z06@]NMJ=;-[ZAH-514E+54.GJFU+0:>CI6E7IVS2IU6GU6JH
M6K;54;1LVP+?A$X5+UQ=7#EY`ULBCSU^BK&B)2%7.CMBJ+8-XD1:\37V`"K'
M+M\;?D.=[ ,<W+]T1 XF7S> ;?XHJ&)%%2X#TAHT-5JC7ZZ(&II=2V
MI*K48%0R/TQ3V#:)M#4T-74-< HVM+&\;*_0H]A*JZ"KHJ#4U+;#PAQA!"
M>Z3VD:P&]%5&$C<6T7Y2M>;A[VL18Y=T&MWU%21@*G4T;33U%72X!04&!:>+
M]1T6GB8U:5%+@_ ]0UW^L!AUK)&^X!H[FOA%[CD`M(FXUM)23RAOL9S48!%)
MHBK;2TH<W&M:8+C_U1T^+>%5\&.[!+'LWLV+^][[Q_U?MK[=G]GP60M-H_N?
MXM!']7M,D4]8KZ_78*^R56B*/B*_HZ/+AOU5?T?/-5]@,_S.U5JM96?185UT
MZ?H]:Y,([*1X77@#_ C,#-PWN_B5U#BD1;AT\1X3XL^@5H_0:%@69>9B,&QV
M3I73C0,/0S?L^ND;?6_44]2RZ:;2?]_X?[_&G^L9^'XI">_;YA(]I"[I
M)!LY97VB&;0S7<HB*MLT:!F80Y0YI#%/+(.J50XTR)PFL&JFSJMBIV>RJE+!
MK8M3\-8]7K<H<)"63=<^S5)#&.OO2JO[-/GU?TZDTZ=F:<<]V!^'HEW[WS#B
M',4"^OUR-C7C/U?O08K#M5G,5Q-*1WF;.6S9U$ND.X63TL_8FH9^(/PTOG(X
KEY_#TB?BI'9\&9PJP\F'YTOU1HZ]%7]3#"^VZE&B_?%^:_Y0Q#U[`$ '````
`
end
Respuesta Responder a este mensaje
#5 Héctor Miguel
31/07/2007 - 06:48 | Informe spam
hola, Luis !

Pues nada, que no va
Vi las referencias y las 4 primeras están marcadas y no veo que den ningun error.
Guardo el archivo como complemento y aparece pero bueno, ya da error como archivo xls y lo mismo como xla
Si me dices que te funciona te envío mi archivo.
Si te funciona quiere decir que el problema es de la instalacion (Excel 2003 + SP2) y no del documento
Es mucho pedir :| pero te lo envio y a ver si te funciona



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.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida