Excel - COPIAR DATOS A COPIA DE SEGURIDAD

 
Vista:
Imágen de perfil de JAIME
Val: 100
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por JAIME (53 intervenciones) el 08/01/2020 20:58:54
Buenas a todos.

Por favor alguien me puede ayudar con este archivo , seria una macros que copia los datos de la hoja "plantilla repaso" desde la fila 8 hasta la 33 y los pegue en la hoja de "copias", y que cada dia que se van rellenado de nuevo la hoja de "plantilla de repaso" se peguen debajo de las copia del dia anterior
Muchas Gracias y un saludo

Jaime
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: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por Antoni Masana (2463 intervenciones) el 09/01/2020 18:06:25
He puesto comentarios para que sea más fácil de entender.

La Macro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Sub Copia_de_Backup()
    Dim Fila As Long
 
    Sheets("plantilla repaso").Select
 
    ' ---&--- Cuenta cuantas filas tiene que copiar
 
    Fila = 8
    While Cells(Fila, "A") <> "": Fila = Fila + 1: Wend
 
    ' ---&--- Si esta vacio no hay que copiar
 
    If Fila = 8 Then Exit Sub
 
    ' ---&-- La ultima celdas con datos a copiar es la anterior
 
    Fila = Fila - 1
 
    ' ---&--- Si esta la tabla llena pone el valor a la ultima fila a copiar
 
    If Fila > 33 Then Fila = 33
 
    ' ---&--- Copia el rango de filas
 
    Range("A8:L" & Fila).Select
    Selection.Copy
 
    Sheets("COPIAS").Select
 
    ' ---&--- Busca la primera celda vacia donde copiar
 
    Fila = 8
    While Cells(Fila, "A") <> "": Fila = Fila + 1: Wend
 
    ' ---&--- Copia y se posiciona
 
    Range("A" & Fila).Select: ActiveSheet.Paste
    Range("A" & Fila).Select
 
    Sheets("plantilla repaso").Select
 
    ' ---&--- Limpia el rango copiado
 
    Range("A8:L33").Select: Selection.ClearContents
    Range("A8").Select
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JAIME
Val: 100
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por JAIME (53 intervenciones) el 09/01/2020 18:14:36
Buenas Antoni

Gracias por tu ayuda, estoy probándola ya te comento.

un saludo
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
Imágen de perfil de JAIME
Val: 100
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por JAIME (53 intervenciones) el 09/01/2020 20:01:27
Buenas Antoni

Funciona de maravilla, gracias, puedes mirar si no te importa como puedo hacer que funcione si protejo la hoja con contraseña, lo he probado y no deja, sale error de depuración. si no puedes lo dejas para otro dia

De nuevo gracias y un saludo
Jaime
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por Antoni Masana (2463 intervenciones) el 09/01/2020 20:23:50
Solo hacen falta las lineas que añado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Sub Copia_de_Backup()
    Dim Fila As Long
 
    Sheets("plantilla repaso").Select
 
    ' ---&--- Cuenta cuantas filas tiene que copiar
 
    Fila = 8
    While Cells(Fila, "A") <> "": Fila = Fila + 1: Wend
 
    ' ---&--- Si esta vacio no hay que copiar
 
    If Fila = 8 Then Exit Sub
 
    ' ---&-- La ultima celdas con datos a copiar es la anterior
 
    Fila = Fila - 1
 
    ' ---&--- Si esta la tabla llena pone el valor a la ultima fila a copiar
 
    If Fila > 33 Then Fila = 33
 
    ' ---&--- Copia el rango de filas
 
    Range("A8:L" & Fila).Select
    Selection.Copy
 
    Sheets("COPIAS").Select
 
    ' ---&--- Busca la primera celda vacia donde copiar
 
    Fila = 8
    While Cells(Fila, "A") <> "": Fila = Fila + 1: Wend
 
    ' ---&--- Copia y se posiciona
 
    ActiveSheet.Unprotect "patata"
    Range("A" & Fila).Select: ActiveSheet.Paste
    Range("A" & Fila).Select
    ActiveSheet.protect "patata"
 
    Sheets("plantilla repaso").Select
 
    ' ---&--- Limpia el rango copiado
 
    Range("A8:L33").Select: Selection.ClearContents
    Range("A8").Select
End Sub

Cambia la palabra patata por el código de protección que tenta la hoja.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JAIME
Val: 100
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por JAIME (53 intervenciones) el 09/01/2020 20:34:07
Buenas Antoni

Lo de la contraseña de maravilla gracias, la estoy probando a fondo ,hay veces que en la columna A donde pongo la fecha se puede dar el caso de poner datos en la fila 8 y no poner hasta la fila 10 por lo que solo copia la fila 8, eso se puede cambiar, o sea que copie desde la fila 8 hasta la ultima que tenga datos.

gracias
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por Antoni Masana (2463 intervenciones) el 09/01/2020 20:42:22
De hecho debería copiar desde la fila 8 hasta que encuentra una fila vacía.
El problema radica en que tenga filas vacías entre filas de datos, si este es el caso se puede solucionar de tres formas:

1.- Copiar desde la 8 a la 33 siempre que tenga alguna línea con datos
2.- Copiar desde la 8 hasta la última filas con datos incluyendo las vacías intermedias.
3.- Copiar solo las filas con datos.

Ha escoger, cada plantea una codificación diferente.

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
Imágen de perfil de JAIME
Val: 100
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por JAIME (53 intervenciones) el 09/01/2020 21:40:25
Buenas Antoni

Te vuelvo a adjuntar la plantilla, donde he rellenado toda la tabla con datos reales de una jornada de trabajo +-, entonces seria que lo copiara y pegara todo ya que si no hay datos en la columna A en la fila 10 todo lo de debajo no se pega.

Gracias
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
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por Antoni Masana (2463 intervenciones) el 10/01/2020 17:27:35
Copia todas las lineas, de la 8 a la 33, si hay algún dato en la columna A
A la hora de pegar busca una celda vacía de la columna L.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Sub Copia_de_Backup()
    Dim Fila As Long, Datos As Boolean
 
    Application.CutCopyMode = False
 
    Sheets("plantilla repaso").Select
 
    ' ---&--- Cuenta cuantas filas tiene que copiar
 
    Datos = False
    For Fila = 8 To 33
       If Cells(Fila, "A") <> "" Then Datos = True
    Next
 
    ' ---&--- Si esta vacio no hay que copiar
 
    If Not Datos Then Exit Sub
 
    ' ---&--- Copia el rango de filas
 
    Range("A8:L33").Select
    Selection.Copy
 
    Sheets("COPIAS").Select
 
    ' ---&--- Busca la primera celda vacia donde copiar
 
    Fila = 8
    While Cells(Fila, "L") <> "": Fila = Fila + 26: Wend
 
    ' ---&--- Copia y se posiciona
 
    ActiveSheet.Unprotect "sisi"
    Range("A" & Fila).Select: ActiveSheet.Paste
    Range("A" & Fila).Select
    ActiveSheet.Protect "sisi"
 
    Application.CutCopyMode = False
 
    Sheets("plantilla repaso").Select
 
    ' ---&--- Limpia el rango copiado
 
    Range("A8:L33").Select: Selection.ClearContents
    Range("A8").Select
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JAIME
Val: 100
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por JAIME (53 intervenciones) el 10/01/2020 17:33:08
Buenas Antoni

Funciona de maravilla muchas gracias y perdona por las modificaciones.

un saludo
Jaime
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
Imágen de perfil de JAIME
Val: 100
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

COPIAR DATOS A COPIA DE SEGURIDAD

Publicado por JAIME (53 intervenciones) el 12/01/2020 16:25:09
Buenas Antoni.

Me podrías seguir ayudando por favor con el archivo que me diste la solución el otro dia, ya que en el archivo hay mas hojas en las cuales me gustaría que se pasara automaticamente la información, dependiendo del trabajador y el turno de trabajo.

Ya me dices algo y te comento mejor el tema
un saludo y gracias

jaime
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