Macros

Buenas Tardes
Tengo problemas para hacer una macro que adicione datos a otro libro, es decir ir acumulando los datos seleccionados de un archivo origen a un archivo destino..
Me seria de mucha utilidad.
Gracias
Ricardo
Respuesta
1
Ricardo:
Ya le hice algunas mejoras al código. Espero te sirva.
Sub Prueba()
Dim misDatos As Long
'Selecciona la region actual...
Selection.CurrentRegion.Select
'... y la copia
Selection.Copy
'Abre el archivo en el que vamos a pegar los datos
Workbooks.Open Filename:="C:\Preuba.xls"
'Se mueve a la primera celda del archivo que abrimos...
Range("A1").Select
'... Y selecciona el área que contiene datos
Selection.CurrentRegion.Select
'Cuenta el número de datos que tiene el archivo
misDatos = Selection.CurrentRegion.Rows.Count
'Condición: Si el archivo no tiene datos entonces pega los datos
'en la primera celda.
If misDatos < 2 Then
ActiveSheet. Paste
' Si el archivo si tiene datos ve a la última hilera, se mueve
' A la siguiente hilera y ahí los pega.
Else
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
End If
End Sub
Hola carlos ..
Mira la macro me saca el siguiente error
Error defienido por la aplicación del objeto.
Le digo depurar y me saca en amarillo la siguiente linea de comando:
ActiveCell. Offset(1, 0).Select, ademas que se va al final del libro destino y no copia los datos del libro origen.. agradezco tu aclaración,
Saludos,
Ricard
Ricardo te envío algo de código que espero te sirva:
Sub Prueba()
'Selecciona la region actual...
Selection.CurrentRegion.Select
'... y la copia
Selection. Copy
'Abre el archivo en el que vamos a pegar los datos
Workbooks.Open Filename:= _
"C:\ventas 03 vs 02.xls"
'Se mueve a la última hilera de datos que contiene ese archivo
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'Y finalmente pega el contenido
ActiveSheet. Paste
End Sub
Si únicamente quieres que adicione los registros que tu selecciones, entonces el código sería el siguiente:
Sub Prueba()
Dim misDatos As Long
'Copia los datos seleccionados
Selection.Copy
'Abre el archivo en el que vamos a pegar los datos
Workbooks.Open Filename:="C:\Preuba.xls"
'Se mueve a la primera celda del archivo que abrimos...
Range("A1").Select
'...y selecciona el área que contiene datos
Selection.CurrentRegion.Select
'Cuenta el número de datos que tiene el archivo
misDatos = Selection.CurrentRegion.Rows.Count
'Condicion: Si el archivo no tiene datos entonces pega los datos
'en la primera celda.
If misDatos < 2 Then
ActiveSheet.Paste
' Si el archivo si tiene datos ve a la última hilera, se mueve
' a la siguiente hilera y ahí los pega.
Else
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
End If
End Sub
Revísalo, si no es lo que necesitas me escribes.
Carlos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas