¿Te atreves a demostrar lo que sabes resolviendo alguno de estos
temas abiertos/no resueltos?

Menú personalizado ...
 
Compartir:
Avisos
Vaciar todo

[Resuelto] Menú personalizado con xml y vba  

  RSS
JavierLR
(@javierlr)
Nuevo miembro Registered

Buenas de nuevo. Como no he podido recuperar el libro, aqui estoy tratando de desarrollarlo de nuevo. El caso es que el tema de los menús personalizados ha cambiado mucho y me he metido a hacerlo con xml.

Después de invetigar mucho, he llegado a hacer algo que medio funciona, pero tengo un problema con un botón que al ejecutarlo me da un error que dice que el argumento no es opcional.

Tengo mi xml en el que llamo a la Sub Inicializacion.Onload

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Inicializacion.Onload">
<ribbon>
<tabs>
<tab id="Ofertas"
label="Ofertas">
<group id="Escandallo" label="Escandallo">
<button id="InsertarHojaNueva"
label="Insertar nueva hoja CBD"
size="normal"
onAction="InsertarHoja"
imageMso="SheetInsert" />
<button id="EliminarHojaNueva"
label="Eliminar hoja CBD activa"
size="normal"
onAction="EliminarHoja"
imageMso="SheetDelete" />
<separator id="Separador_1"/>

e Inicializaion.Onload

Public MiRibbon As IRibbonUI

Sub Onload(ribbon As IRibbonUI)
'Crear la instancia del ribbon para el proyecto
Set MiRibbon = ribbon
End Sub

El caso es que con el botón InsertarHojaNueva, que llama OnAction a InsertarHoja, cuando hago click en él, me salta ese error.

La Sub es como sigue:

Sub InsertarHoja(ByRef control As IRibbonControl, ByRef Pressed As Boolean)
Dim ColFin As Long
Dim NombreNueva As String


On Error GoTo Manejador:

'Crear copia de hoja CBD_Template al final
Sheets("CBD_Template").Copy After:=Sheets(Sheets.Count)
NombreNueva = ActiveSheet.Name

'Insertar columna de fórmulas en la hoja Analisis
Application.ScreenUpdating = False
Hoja7.Select
Hoja7.Range("C1:C50").Select
Application.CutCopyMode = False
Selection.Copy
Selection.Insert Shift:=xlToRight

Me estoy volviendo loco y no consigo localizar el fallo. Si me pudiesen echar una mano, estaría muy agradecido.

 

Saludos,

 

Citar
Respondido : 05/08/2020 10:17 pm
RET
 RET
(@ret)
Miembro Admin

Hola Javier,

Sin tener el libro para comprobarlo, te diría que mires la

Sub InsertarHoja(ByRef control As IRibbonControl, ByRef Pressed As Boolean)

Si no me equivoco, en el xml defines un botón que llama a esta rutina. Para los botones solo tienes que declarar ByRef control As IRibbonControl

IMF_RET

https://InformaticaMuyFacil.com

ResponderCitar
Respondido : 06/08/2020 10:07 pm
JavierLR le gustó
JavierLR
(@javierlr)
Nuevo miembro Registered

@RET, tienes toda la razón. Me estaba volviendo loco buscando por todo el código y el problema lo tenía en esa declaración que había copiado de un checkbox.

A veces se nos complican las cosas con lo mas sencillo.

 

Gracias!!!!

ResponderCitar
Respondido : 09/08/2020 11:56 am

Dejar una respuesta

Nombre del autor

Correo electrónico del autor

Título *

 
Vista previa 0 revisiones Guardado