Saltar al contenido

Macro copie y pegue según criterio.


Recommended Posts

publicado

Hola. Con la duda que tengo he hecho búsquedas por las webs de Excel pero no he encontrado algo que se ajuste a lo que quiero hacer. Lo que he encontrado es copiar y pegar siempre las mismas celdas en los mismos sitios.

Tengo una hoja de cálculo en la que hay distintos artículos. Cada día tengo que pedir algunos de estos por e-mail y me gustaría automatizar un poco el proceso.

Lo que quiero es que con solo poner un dato en una celda de la columna A (con que sea diferente de "" es suficiente), cuando le dé a un botón sepa que tiene que pasar a otra hoja los datos de las celdas adyacentes de la misma fila.

Una vez están en la otra hoja me será más fácil copiarlos a un correo electrónico para realizar el pedido.

He puesto un ejemplo lo más claro que he sabido para quien me pueda ayudar.

MEGA

Gracias y recibir un cordial saludo.

publicado

Lo siento, pero no lo pillo.

En el archivo que adjuntas no veo lo que explicas en la consulta. (Hojas, botón, datos adyacentes,...)

publicado

Hola. Que fallo el mio, he puesto el enlce de otro proyecto que tengo por ahí a medias.

Ahí va el bueno y perdón por el error.

MEGA

Saludos

publicado

Prueba con la macro así:


Sub CopiaPega()

Application.ScreenUpdating = False

Fila = Sheets("Pedido").Range("A" & Rows.Count).End(xlUp).Row + 2
For x = 3 To Sheets("Tintas").Range("A" & Rows.Count).End(xlUp).Row
If Trim(Len(Sheets("Tintas").Range("A" & x))) > 0 And _
Trim(Len(Sheets("Tintas").Range("B" & x))) > 0 Then
Sheets("Tintas").Range("A" & x & "" & x).Copy
Sheets("Pedido").Range("A" & Fila).PasteSpecial Paste:=xlPasteValues
Fila = Fila + 1
End If
Next

Application.CutCopyMode = False

End Sub

[/CODE]

publicado

Hola. He pegado el código en un módulo y este lo he asociado al botón.

Macro Antonio, al ingresar un valor en cualquier celda de la columna A da error de compilación: Se ha detectado un nombre ambiguo: Copiapega.

Una vez aceptado también vuelve a dar el mismo error.

La idea es que solo funcione cuando le de al botón "Realizar pedido".

Otra cosa:

¿Es posible que me ponga la fecha como está en el ejemplo?

Gracias de nuevo.

publicado

Tienes que eliminar tu macro, ya que le he dado el mismo nombre para que te funcionará el botón.

Mientras pruebas te miro lo de la fecha.

publicado

He llegado yo antes que tú:

Sub CopiaPega()

Application.ScreenUpdating = False

Fila = Sheets("Pedido").Range("A" & Rows.Count).End(xlUp).Row + 2
Sheets("Pedido").Range("A" & Fila) = "Fecha"
Sheets("Pedido").Range("B" & Fila) = Date
Fila = Fila + 1

For x = 3 To Sheets("Tintas").Range("A" & Rows.Count).End(xlUp).Row
If Trim(Len(Sheets("Tintas").Range("A" & x))) > 0 And _
Trim(Len(Sheets("Tintas").Range("B" & x))) > 0 Then
Sheets("Tintas").Range("A" & x & "" & x).Copy
Sheets("Pedido").Range("A" & Fila).PasteSpecial Paste:=xlPasteValues
Fila = Fila + 1
End If
Next

Application.CutCopyMode = False

End Sub
[/CODE]

publicado

Vale. Funciona perfecto.

Pongo un enlace al proyecto final por si le vale a alguien porque he encontrado ningún ejemplo en el que se copie y pegue según si hay un valor o no en una celda.

Archivo: EjemploPedidoFinal

MEGA

Gracias y que tengas un buen fin de semana

Tema Solucionado

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • 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.