Saltar al contenido

Macro para copiar y pegar varias veces


Recommended Posts

publicado

Buen día a todo el foro.

A ver si me hago entender y me pueden ayudar.

-He adjuntado una macro que básicamente lo que hace es pegar en un libro el rango de datos que he seleccionado previamente en un libro auxiliar. 

-La macro pega los datos en un determinado rango con su encabezado los valores, posteriormente copia los datos sin sus encabezados en una tabla "Tabla5", borrando los datos pegados. Hasta este punto mas o menos bien.

-Lo que quería conseguir, de ahí me consulta es lo siguiente:

Poder hacer mas selecciones en el libro Auxiliar y que vaya pegando en la tabla "Tabla5" los datos a partir de la  última fila con datos.

Buenos días a todos 

MCopiarPegar.zip

publicado

Hola

Hace 7 horas, Benito Bartolomé dijo:

-Lo que quería conseguir, de ahí me consulta es lo siguiente:

Poder hacer mas selecciones en el libro Auxiliar y que vaya pegando en la tabla "Tabla5" los datos a partir de la  última fila con datos.

¿Pero necesitas copiar todo o solo un rango seleccionado?

 

Saludos 

publicado

Lo entiendo, mire el video, pero no me respondiste la pregunta

Necesitas copiar todo [de un solo], seleccionas rangos [manualmente] al azar o por algun criterio [filtro],  debes ser explicito, porque en cada una de mis dudas, significa que son 3 procedimientos diferentes

 

Saludos 

publicado

Sin copiar el encabezado, te basta con esto:

Sub PegarSaldo()
Application.ScreenUpdating = False
If Range("A5") = "" Then
   Range("A5").Select
Else
   Range("A4").End(xlDown).Offset(1).Select
End If
ActiveSheet.Paste
Application.ScreenUpdating = True
End Sub

Simplemente, Ctrl+c y Ctrl+v en la celda A de la fila del Total.

publicado

Perdón por tardar en contestar, iba en coche.

Tiene que ser manualmente, sería  buena la idea de todo pero no me sirve para este caso concreto. 

La mayoría  de las veces solo será  un copiado aunque hay ocasiones que tendre que copiar y pegar dos o tres veces.

Otra vez gracias por su interés.  Un abrazo 

Espero haber resuelto sus dudas.

 

publicado
Hace 4 minutos , Antoni dijo:

Sin copiar el encabezado, te basta con esto:


Sub PegarSaldo()
Application.ScreenUpdating = False
If Range("A5") = "" Then
   Range("A5").Select
Else
   Range("A4").End(xlDown).Offset(1).Select
End If
ActiveSheet.Paste
Application.ScreenUpdating = True
End Sub

Simplemente, Ctrl+c y Ctrl+v en la celda A de la fila del Total.

Hola Antoni,  gracias  por contestar. Hoy no puedo verlo porque estoy ahora mismo trabajando en otra cosa, mañana veo tú aporte y te comento. Unha aperta  e que chova??‍♂️?

publicado
Hace 1 hora, Gerson Pineda dijo:

Lo entiendo, mire el video, pero no me respondiste la pregunta

Necesitas copiar todo [de un solo], seleccionas rangos [manualmente] al azar o por algun criterio [filtro],  debes ser explicito, porque en cada una de mis dudas, significa que son 3 procedimientos diferentes

 

Saludos 

Te he contestado antes pero no te había citado. Lo vuelvo hacer por si acaso no lo habías  visto. Saludos 

publicado
Hace 13 horas, Antoni dijo:

Sin copiar el encabezado, te basta con esto:


Sub PegarSaldo()
Application.ScreenUpdating = False
If Range("A5") = "" Then
   Range("A5").Select
Else
   Range("A4").End(xlDown).Offset(1).Select
End If
ActiveSheet.Paste
Application.ScreenUpdating = True
End Sub

Simplemente, Ctrl+c y Ctrl+v en la celda A de la fila del Total.

Bo día Antoni;

He probado la macro y ejecuta correctamente teniendo en cuenta la condición no copiar el encabezado.

Esta opción no la puedo evitar y te explico:

En la hoja están pegados los datos de otro programa ya que el programa en cuestión no os lo puedo pasar. En el dichoso programa si no copio los encabezados y tiene alguna columna vacía al pegar los datos se dispersar aumentando o disminuyendo columnas.

He cogido tú macro y le he añadido alguna cosilla mas y creo que funciona correctamente. Si le ves algún fallo me comentas.

Antes de insertar la macro tengo una última pregunta:

Como poner un control de errores , por ejemplo que por error no le has dado a copiar, ...

Sub pegarSaldo()
Application.ScreenUpdating = False

    'Windows("MCopiarPegar.xlsm").Activate
    Range("I4").Select
    ActiveSheet.Paste
    Range("I5:O" & Range("I" & Rows.Count).End(xlUp).Row).Copy

    If Range("A5") = "" Then
        Range("A5").Select
    Else
        Range("A4").End(xlDown).Offset(1).Select
    End If
    
    ActiveSheet.Paste
   'Elimina los datos pegados
    Columns("I:O").Select
    Selection.Delete Shift:=xlToLeft
    Range("I4").Select
    
Application.ScreenUpdating = True
End Sub

 

publicado

En lugar de copiar con Ctrl+c, hazlo con la macro CopiarSaldo, a la que te recomiendo que asignes un combinación de teclado, por ejemplo Ctrl+Shift+C.

Public Copiado As Boolean

Sub CopiarSaldo()
Copiado = True
Selection.Copy
End Sub

Sub pegarSaldo()
Application.ScreenUpdating = False

'--
If Copiado = False Then
   MsgBox "No has copiado", vbCritical
   Exit Sub
End If
Copiado = False

'--
   'Windows("MCopiarPegar.xlsm").Activate
   Range("I4").Select
   ActiveSheet.Paste
   Range("I5:O" & Range("I" & Rows.Count).End(xlUp).Row).Copy
   
   If Range("A5") = "" Then
       Range("A5").Select
   Else
       Range("A4").End(xlDown).Offset(1).Select
   End If
   
   ActiveSheet.Paste
   'Elimina los datos pegados
   Columns("I:O").Select
   Selection.Delete Shift:=xlToLeft
   Range("I4").Select
'--
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

 

publicado

Buenos días Antoni;

-Discúlpame pero no pillo la macro que me pasas, debo estar dormido aún.

-Algo debo estar haciendo mal, a ver si pillas donde me equivoco.

He puesto la macro en el mismo módulo porque no hablas de crear ninguno.

Copio de la hoja auxiliar con control + bloq Mayus + C  y le doy a la macro copiar y después a pegar y pega sin valores

Te paso un video por si ves algo que me estoy olvidando.

Video:

Video copiarPegarA

 

publicado

Hola Antoni;

-Disculpa por la tardanza pero tuve una mañana un poco liada.

-Ya logré hacer funcionar la macro e entendí lo que me decías. Es lunes maestro y aún estamos espesos. 

-La macro me sirve cuando trabajo sobre Excel en cambio no me permite copiar sobre el programa que trabajo que se llama AS-400. Ahí no tengo permisos para tocar y todo mi gozo en un pozo.

Si se te ocurre alguna cosa me dices en todo caso te lo agradezco mucho y la idea era muy buena.

Un abrazo fuerte y aprovecho la ocasión por si no volvemos a chatear para felicitarte las fiestas. 

Bo nadal e mellor ano (año para los demas ? siempre hay algún sacapuntas)

publicado

Hola de nuevo Antoní;

-Estaba probando la macro y me dio un error que no se como solucionar:

-Si copio de la hoja Auxiliar el encabezado con mas de dos líneas pega bien.

-En cambio si copio el encabezado con una sola línea me pega los datos en la línea donde van los subtotales.

No sé como corregir esto.

Te adjunto un pdf con una captura. 

Disculpa por no haberme dado cuenta antes.

 

Saludos

ErrorSubtotal.pdf

publicado
En 14/12/2020 at 11:01 , Antoni dijo:

Control + bloq Mayus + C no se puede asignar a una macro, revisa que combinación le has asignado.

Bo día Antoni;

Ya resolví el problema que me surgía al copiar un encabezado con una sola línea. 

Cita

-Estaba probando la macro y me dio un error que no se como solucionar:

-Si copio de la hoja Auxiliar el encabezado con mas de dos líneas pega bien.

-En cambio si copio el encabezado con una sola línea me pega los datos en la línea donde van los subtotales.

No sé como corregir esto.

He eliminado la línea del subtotal de la tabla y he añadido a la macro el cálculo del campo importe y ahora va bien.

Con esto ya finalizo la pregunta.

Adjunto la macro.

Saúdos e bo nadal.?

DatosAuxiliar.xlsx MCopiarPegar.xlsm

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.