Saltar al contenido

Macro para copiar datos y macros


Ir a la solución Solucionado por JasallBcn,

Recommended Posts

publicado

En este archivo pretendo que en una hoja nueva de excel que tome el valor del numero de orden, se creen tantas copias de la tabla que veis en la hoja materiales como "Si" aparecen en el listado de Materiales de la hoja de inicio. La idea es que se pudieran copiar los nombres de esos materiales a cada una de las tablas y que las macros que tengo en la hoja materiales se copiaran a su vez.

Gracias

Materiales2024v2.xlsm

  • Solution
publicado

Buenas, te paso una forma.

Para poder aprovechar los macros los modifiqué  capturando el nombre del shape que hace la llamada a la rutina mediante "Application.Caller" , que previamente al copiar Shapes = botones le di como nombre la altura de la hoja donde está y así poder aplicar los cambios a los rangos de la tabla que está a su altura.

Saludos.

 

Materiales2024_v3.xlsm

publicado

Muchas gracias por tu ayuda. Has solucionado el problema perfectamente. Gracias de verdad!!!

publicado

Alguien puede decirme xq me da error en este campo, en mi ordenador habitual la macro corre sin problema, pero en otro que utilizo ocasionalmente siempre tengo error en la misma linea.

   ' seleccion la hoja Materiales donde estan los botones
    Sheets("Materiales").Select
    ' selecciona el 1º boton
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select
    ' le cambia el nombre por la posicion donde ira el boton, me sirvira para identificarlo cuando sea pulsado
    Selection.ShapeRange.Name = "H" & donde
    DoEvents
    Selection.Copy
    
    ' le cambia el nombre , por si se pulsa en la hoja Materiales y no de error
    Selection.ShapeRange.Name = "H10"
    
    Sheets(hojaor).Select
    Range("H" & donde).Select
    DoEvents
   

Cita

ActiveSheet.Paste


    
    
    
    Sheets("Materiales").Select
    ' selecciona el 2º boton
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 3")).Select
    ' le cambia el nombre por la posicion donde ira el boton, me sirvira para identificarlo cuando sea pulsado
    Selection.ShapeRange.Name = "H" & donde
    DoEvents
    Selection.Copy
    
    ' le cambia el nombre , por si se pulsa en la hoja Materiales y no de error
    Selection.ShapeRange.Name = "H10"
    
    Sheets(hojaor).Select
    Range("H" & donde + 2).Select
    DoEvents
    ActiveSheet.Paste
End Sub

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.