Excel - Copiar datos última fila a otra hoja en Excel VBA

 
Vista:
sin imagen de perfil
Val: 18
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Copiar datos última fila a otra hoja en Excel VBA

Publicado por Marta (8 intervenciones) el 28/03/2019 09:39:20
Necesito ayuda para resolver un problema que me he encontrado al resolver el proyecto.

Me gustaría saber como puedo hacer una macro, que me recorra una serie de hojas (longitud1, longitud2, longitud3...) de un archivo de excel, detectando el valor de la ultima fila (de la columna A) en cada una de ellas, y copiando dicho valor en otra hoja del libro que se llama "Buscar" (en la columna A).

Adjunto el libro donde quiero realizar la MACRO.

Si necesitan más información me lo pueden decir. Espero y deseo que me puedan ayudar ya que lo necesito para continuar con mi proyecto.

Un saludo,

Marta.
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.160
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar datos última fila a otra hoja en Excel VBA

Publicado por Antoni Masana (1455 intervenciones) el 28/03/2019 10:08:40
Buenos días Marta,,

Si entiendo bien lo que necesitas aquí tienes la macro.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Buscar_En_Varias_Ultima_Fila()
    Dim Fila_Orig As Long, Fila As Long, Hoja As Worksheet
 
    Fila_Orig = 2
    For Each Hoja In ActiveWorkbook.Worksheets
        If Hoja.Name <> "Buscar" Then
            Hoja.Activate
            Fila = 1
            While Cells(Fila, "A") <> ""
                Fila = Fila + 1
            Wend
            Sheets("Buscar").Cells(Fila_Orig, "A") = Cells(Fila - 1, "A")
            Fila_Orig = Fila_Orig + 1
        End If
    Next Hoja
    Sheets("Buscar").Activate
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
sin imagen de perfil
Val: 18
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Copiar datos última fila a otra hoja en Excel VBA

Publicado por Marta (8 intervenciones) el 28/03/2019 11:15:19
Muchas gracias Antoni, me funciona perfectamente.

Sin embargo, en el la consulta que te hice el otro día sobre "Como buscar datos en diferentes hojas de excel de un mismo archivo" cuyo código era este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Buscar_En_Varias_Hojas()
    Dim Fila_Orig As Integer, Celda As Long, _
        CeldaAux As Range, RangoAux As Range, Hoja As Worksheet
 
    Fila_Orig = 2
    For Each Hoja In ActiveWorkbook.Worksheets
        If Hoja.Name <> "Buscar" Then
            Hoja.Activate
            Celda = Sheets("Buscar").Cells(Fila_Orig, "A")
 
            Set RangoAux = Hoja.Range(Cells(2, 1), Cells(2, 1).End(xlDown))
            For Each CeldaAux In RangoAux
                If Celda = CeldaAux Then
                   Sheets("Buscar").Cells(Fila_Orig, "B") = CeldaAux.OffSet(0, 1)
                   Sheets("Buscar").Cells(Fila_Orig, "C") = "fila: " & Format(CeldaAux.Row, "###") & " - hoja: " & Hoja.Name
                   Exit For
                End If
            Next
            Fila_Orig = Fila_Orig + 1
        End If
    Next Hoja
Sheets("Buscar").Activate
End Sub


No entiendo porque cuando los datos contienen decimales, por ejemplo, 8567,5, no me devuelve el valor que yo quiero, me lo deja en blanco.

Un saludo,
Marta.
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.160
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar datos última fila a otra hoja en Excel VBA

Publicado por Antoni Masana (1455 intervenciones) el 28/03/2019 19:42:47
Perdona, solo había leído el texto de este POST y ahora acabo de leer el que añadiste de la otra macro y faltaba añadir la columna B en la copia.

Aquí tienes la corrección:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Buscar_En_Varias_Ultima_Fila()
    Dim Fila_Orig As Long, Fila As Long, Hoja As Worksheet
 
    Fila_Orig = 2
    For Each Hoja In ActiveWorkbook.Worksheets
        If Hoja.Name <> "Buscar" Then
            Hoja.Activate
            Fila = 1
            While Cells(Fila, "A") <> ""
                Fila = Fila + 1
            Wend
            Sheets("Buscar").Cells(Fila_Orig, "A") = Cells(Fila - 1, "A")
            Sheets("Buscar").Cells(Fila_Orig, "B") = Cells(Fila - 1, "B")
            Fila_Orig = Fila_Orig + 1
        End If
    Next Hoja
    Sheets("Buscar").Activate
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
2
Comentar
sin imagen de perfil
Val: 18
Ha disminuido 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Copiar datos última fila a otra hoja en Excel VBA

Publicado por Marta (8 intervenciones) el 04/04/2019 17:21:06
Muchas gracias Antoni. Tu ayuda es muy valiosa.
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

Copiar datos última fila a otra hoja en Excel VBA

Publicado por rafael (1 intervención) el 23/03/2020 16:39:35
Hola, tengo un libro con varias hoja. otro libro con varias hojas.
necesito hacer una macro que:

1.- en el libro 1 hoja matriz copie la ultima fila que está llena y la pegue en el libro dos hoja Datos en la última fila vacía
2.- en el libro 2 hoja c, d, e y f, copie las última fila y la inserta ahí mismo, borre el primer registro de la columna a y pegue el último registro de la columna a de la hoja matriz del libro 1 y así sucesivamente con las hojas d, e y f del libro 2.
agradecido
rafael
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