AYUDA macro Copiar datos de un libro a otro

2 envíos / 0 nuevos
Último envío
JMB
Imagen de JMB
Offline
última acción: Hace 6 años 11 meses
alta: 03/04/2017 - 13:39
Puntos: 25
AYUDA macro Copiar datos de un libro a otro

Buenas tardes, tengo un problema a la hora de hacer trabajar mi macro. mi intención es pasar un listado de datos de un libro a otro de forma que vaya seleccionando fila a fila y si en la columna G de cada fila tiene escrita la palabra SI, se copien los datos a otro libro buscando siempre la proxima fila en blanco. En el caso que no tenga el SI escrito que siga leyendo hasta encontrar el siguiente.

resumen: fila 1, G1=SI la copio y la pego en otro libro. fila 2 G2=vacia sigo leyendo fila 3, G3= SI la copio y la pego en la siguiente fila vacia del libro nuevo, etc

Ya he conseguido hacer funcionar el programa haciendolo trabajar en la misma hoja en la que tengo los datos( es decir, lo que habia puesto SI lo copia y lo pega al final de la lista), pero ahora quiero hacerlo funcionar copiandolos a un libro distinto. copio lo que tengo por el momento a la espera de vuestra ayuda. aDJUNTO TAMBIÉN EL EJEMLO DE COMO TRABAJA ESTA MACRO

 


Sub publicar()
'Definir objetos a utilizar
Dim wbDestino As Workbook, _
    wsOrigen As Excel.Worksheet, _
    wsDestino As Excel.Worksheet, _
    rngOrigen As Excel.Range, _
    rngDestino As Excel.Range, _
    publicacion As String, _
    CONTADOR As Long, _
    fila As Long
   
   
   
    
'Indicar el libro de Excel destino
Set wbDestino = Workbooks.Open("\\SERV1-DC\Menusw7\jmbenlloch\Desktop\Destino.xlsx")
 
'Activar este libro
ThisWorkbook.Activate
 
'Indicar las hojas de origen y destino
Set wsOrigen = Worksheets("Hoja1org")
Set wsDestino = wbDestino.Worksheets("Hoja1dest")
 
'Indicar la celda de origen y destino
Const celdaOrigen = "A1"
Const celdaDestino = "A1"
 
'Inicializar los rangos de origen y destino
Set rngOrigen = wsOrigen.Range(celdaOrigen)
Set rngDestino = wsDestino.Range(celdaDestino)
 
'Condicion
   For CONTADOR = 1 To 3
    fila = CONTADOR
   
    publicacion = Cells(fila, 7)
   
 If publicacion = "SI" Then
 
'Seleccionar rango de celdas origen
rngOrigen.Select
Range(Cells(fila, 1), Cells(fila, 5)).Select
Selection.Copy
 
'Pegar datos en celda destino
******AQUÍ NECESITO QUE LAS PEGUE EN OTRO LIBRO Y NO SE HACERLO, EN EL LIBRO QUE HE ACTIVADO AL PRINCIPIO****
Range("a1").End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False

'Acabar condicion
 
 End If
 Next
 
'Guardar y cerrar el libro de Excel destino
wbDestino.Save
wbDestino.Close

End Sub

AdjuntoTamaño
File origen.xlsx8 KB

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 5 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
hoja de destino

ya tienes creado un objeto para la hoja de destino, wsDestino, simplemente utililízalo

 

'Pegar datos en celda destino (método de la hoja, indicando el destino)

wsDestino.Paste wsDestino.Range("a1").End(xlDown).Offset(1, 0)

 
 

 

------
Ya sé Excel, pero necesito más.