Visual Basic para Aplicaciones - copiar todos los datos de una hoja a otra a partir de una fila determinada

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 59
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

copiar todos los datos de una hoja a otra a partir de una fila determinada

Publicado por Manuel (26 intervenciones) el 06/08/2020 11:33:09
Buenos días,
tengo una hoja donde recojo datos de fichajes (HOJAORIGEN) y quiero pasarlos a otra hoja en otro libro (HOJADESTINO), pero que solo se pasen los nuevos fichajes, los que se han pasado anteriormente no lo hagan, seria como pasar datos a partir de una determinada linea hasta el final.
Los datos en la HOJADESTINO son verificados cada dia y pasados a una hoja de control, por lo que si copio toda la hoja me vuelve a copiar líneas que ya estaban pasadas a la hoja de control , y dan resultados erróneos.
A ver si alguien me puede ayudar.
El código que he utilizado para copiar toda la hoja es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim uFila As Integer
 
Dim wbLibroOrigen As Workbook
Dim wsHojaOrigen As Worksheet
 
Dim wbLibroDestino As Workbook
Dim wsHojaDestino As Worksheet
Dim fechaactual As Date
Dim Ruta As String
 
Ruta = "\\ALMACEN\Documentos c\FICHAJES ORDENADOR ABAJO 3.0.xlsm"
 
'Datos destino
Set wbLibroDestino = Workbooks(ThisWorkbook.Name)
Set wsHojaDestino = wbLibroDestino.Worksheets(Year(Date) & " Marcajes")
 
'Datos origen
Set wbLibroOrigen = Workbooks.Open(Ruta)
Set wsHojaOrigen = wbLibroOrigen.Worksheets(Year(Date) & " Marcajes")
 
uFila = wsHojaOrigen.Range("A" & Rows.Count).End(xlUp).Row
wsHojaOrigen.Range("A2:F" & uFila).Copy Destination:=wsHojaDestino.Range("A2")
 
Workbooks(wbLibroOrigen.Name).Close SaveChanges:=False

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

copiar todos los datos de una hoja a otra a partir de una fila determinada

Publicado por Antoni Masana (498 intervenciones) el 07/08/2020 13:51:13
Se puede hacer de varias formas:

1.- En la hoja DESTINO buscar la última línea copiada y en la hoja ORIGEN buscas es línea y copias a partir de la línea siguiente.
2.- Marcar las líneas copiadas en la hoja ORIGEN, con lo que la siguiente vez que copies solo tendrás que buscar las NO marcadas.

Y aún quedan preguntas por contestar, pero esas te las dejo a ti.

Y un último detalle, esta instrucción me gusta menos que una pedregada o falla más que una escopeta de balines.

1
uFila = wsHojaOrigen.Range("A" & Rows.Count).End(xlUp).Row

Funciona bien hasta que deja de hacerlo.

Saludos.
\\//
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar