Estimados buenas tardes,
Me llamo juan. Gusto en saludarlos
He creado un macro que copia un formato de hoja excel "xyz" ( la hoja copiada trae su codigo - con su boton de ejecucion ) a un libro nuevo( en una hoja "abc"). Posteriormente al presionar el boton o querer ejecutar la nueva hoja "abc" inmediata excel llama a su hoja anterior "xyz". luego me sale Error. 400.
Quisiera saber como puede tener independencia esa nueva hoja al ejecutarse o si hubiera una formula correcta. Por favor seria de mucha ayuda.
Slds y gracias de antemano.
hola amigos,
Solo me funciona la nueva hoja con su codigo, siempre y cuando lo ejecute ingresando directamente a VBA, y presionado el famoso icono F5.
En cambio si lo hago la ejecucion desde la hoja excel presionado el boton . Pues genera el error, tal y como lo explique en el anterior comentario.
Espero su apoyo, ya que lo que busco es que cuando envie una copia a un cliente, pueda simplemente presionar el boton que esta en la hoja excel.
Saludos nuevamente.
Seguramente la referencia que tiene el botón al nombre de la macro que se debe ejecutar guarda no sólo el nombre de la macro, sino el nombre del libro/hoja
y esa referencia no se actualiza cuando creas una copia de la hoja con otro nombre.
Así que como parte de la macro que copia la hoja, deberás cambiar la propiedad del botón con el que ejecutas la macro.
Si es un control de formulario, la macro asociada está en la propiedad OnAction del botón.
Mira a ver qué tienes en esa propiedad, y corrígelo para que se corresponda con la nueva hoja/libro por ejemplo:
ActiveSheet.shapes("Button 1").OnAction
En vez de Button 1 será el nombre del botón que tengas en la hoja (graba una macro para asignar una nueva macro y mira el código grabado
------
Ya sé Excel, pero necesito más.
hola Pacomegia,
Esta es la macro :
Sub Copiar_a_Word_Hsub()
ActiveSheet.Shapes("ejecutar").OnAction
' El 2013 se refiere al excel 2013 que tenemos. El .15 es: microsoft word 15.0 object library. En herramientas, referencia
'seleccion rango en hoja excel
Range("a1:f44").Select
'-------------------------------------------------------------
Dim WordApp2013 As Object
'Set WordApp2013 = CreateObject(“Word.Application.15”)
Set WordApp2013 = CreateObject("Word.Application.15")
Selection.Copy
With WordApp2013
'‘Con este codigo se abrira Word y se creara un documento nuevo
.Visible = True
.Activate
.Documents.Add
End With
WordApp2013.Selection.PasteSpecial link:=True
'‘Se pegara en el documento lo seleccionado en la hoja de calculo
Set WordApp2013 = Nothing
End Sub
Si te va al libro anterior buscando la macro que esta sobre la hoja o controles en la hoja, tendras que buscar en datos editar vinculos y luego Romper vinculos.
Luego asignas la macro al boton que tengas en la hoja
esto para que no te vaia a buscar la macro del otro libro
Muchas gracias JoaoM,
Pero no sabes alguna manera de ejecutar una macro de hoja activa, sin necesidad de usar botones o metodos abreviados( cntrl + ..).
Solo presionando alguna tecla del teclado. Slds
Se que para Excel2010 y 2013, puedes dentro de la hoja, presionas en Programador o desarrollador.
A tu izquierda esta un icono Macros, te muestra slas macros que tengas en el editor.
Selecionas la que quieres ejecutar pero antes pisas en Opciones y verás un cuadrito donde puedes darle el acceso de una tecla