Visual Basic para Aplicaciones - Macro que importe datos de unas hojas de un libro de Excel a una hoja de otro libro

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

Macro que importe datos de unas hojas de un libro de Excel a una hoja de otro libro

Publicado por Juan (1 intervención) el 02/06/2021 18:23:09
Cordial Saludo si alguien me puede ayudar se lo agradezco de antemano, la situación es la siguiente: Necesito copiar unos datos que están ubicados en unas hojas de Excel en los mismos rangos a otro libro de Excel.
Tengo el siguiente código pero no me funciona el ciclo For solo me trae los datos de la primer hoja que copia

Código:
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
Sub ImportarDatos()
 
Dim librodatos As Workbook
Dim Ruta As String
Dim i As Integer
 
 
Ruta = Application.GetOpenFilename(Title:="Por favor seleccionar un archivo de Excel")
 If  Ruta = "False" Then
      Exit Sub
      End If
 
    Set librodatos = Workbooks.Open(Ruta)
    tmp = librodatos.Sheets.Count
 
    For i=1 To tmp
 
    librodatos.Sheets(i).Range("A2:A7").Copy
    ActiveSheet.Paste
    Range("A2:A50").Select
 
    Next i
 
   librodatos.Close savechanges:=False
 
End Sub

Mil gracias por la ayuda....
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 Norberto
Val: 115
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Macro que importe datos de unas hojas de un libro de Excel a una hoja de otro libro

Publicado por Norberto (14 intervenciones) el 03/06/2021 13:14:00
Hola:

Hombre, a mí me da la sensación que pegas siempre en el mismo rango por lo que se va machacando la información copiada de la primera hoja con lo de la segunda y así, sucesivamente, con todas las demás.

Prueba con algo así como ActiveCell.Offset(6).Select en la línea 20.

Un saludo,

Norberto.
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