Cuando ingresos los datos con código no los coloca donde deseo colocar los datos.

Código que extrae información de varios archivos de Excel desde una carpeta pero al colocar los datos los coloca varias filas mas abajo.

Debe iniciar a colocar los datos en C6.

La información la tiene que colocar dentro de una tabla que tiene formulas:

Coloco el código:

Sub ExtraerDatosFacturas()
Dim carpetaFacturas As String
Dim archivo As String
Dim wbFactura As Workbook
Dim wsDestino As Worksheet
Dim ultimaFila As Long
' Cambia esto por la ruta de la carpeta que contiene tus facturas
carpetaFacturas = "C:\Users\user\Desktop\Nueva carpeta\1 ENERO 2024\"
' Asume que la hoja activa es donde quieres acumular los datos
Set wsDestino = ThisWorkbook.ActiveSheet
' Encuentra la última fila con datos en la hoja destino
ultimaFila = wsDestino.Cells(wsDestino.Rows.Count, "C").End(xlUp).Row + 5
' Busca archivos de Excel en la carpeta
archivo = Dir(carpetaFacturas & "*.xlsm")
Do While archivo <> ""
' Abre el archivo de Excel
Set wbFactura = Workbooks.Open(carpetaFacturas & archivo)
' Extrae los datos y los acumula en la hoja destino
With wsDestino
.Cells(ultimaFila, 3).Value = wbFactura.Sheets("AGK").Range("J11").Value 'TIPO DE CAMBIO
.Cells(ultimaFila, 4).Value = wbFactura.Sheets("AGK").Range("I61").Value 'NACIONAL
.Cells(ultimaFila, 5).Value = wbFactura.Sheets("AGK").Range("I62").Value 'DOLARES
.Cells(ultimaFila, 6).Value = wbFactura.Sheets("AGK").Range("J64").Value 'IAVE
.Cells(ultimaFila, 9).Value = wbFactura.Sheets("AGK").Range("AC58").Value 'FALTANTE M.N
.Cells(ultimaFila, 10).Value = wbFactura.Sheets("AGK").Range("AC59").Value 'FALTANTE USD
.Cells(ultimaFila, 13).Value = wbFactura.Sheets("AGK").Range("AC61").Value 'SOBRANTE M.N
.Cells(ultimaFila, 14).Value = wbFactura.Sheets("AGK").Range("AC62").Value 'SOBRANTE USD
.Cells(ultimaFila, 17).Value = wbFactura.Sheets("AGK").Range("AC58").Value 'ELUDIDOS
.Cells(ultimaFila, 18).Value = wbFactura.Sheets("AGK").Range("AC59").Value 'V.S.C
.Cells(ultimaFila, 19).Value = wbFactura.Sheets("AGK").Range("AC61").Value 'AFORO IAVE
.Cells(ultimaFila, 20).Value = wbFactura.Sheets("AGK").Range("Y58").Value 'AFORO SUBTOTAL
.Cells(ultimaFila, 21).Value = wbFactura.Sheets("AGK").Range("Y59").Value 'AFORO TOTAL
.Cells(ultimaFila, 22).Value = wbFactura.Sheets("AGK").Range("Y60").Value 'AFOTO PEATONES
.Cells(ultimaFila, 23).Value = wbFactura.Sheets("AGK").Range("AG25").Value 'INGRESOS NACIONAL
.Cells(ultimaFila, 24).Value = wbFactura.Sheets("AGK").Range("AH25").Value 'INGRESOS USD
End With
ultimaFila = ultimaFila + 1
' Cierra el libro sin guardar cambios
wbFactura.Close False
' Siguiente archivo
archivo = Dir
Loop
MsgBox "Datos importados con éxito."
End Sub

1 respuesta

Respuesta

ultimaFila = wsDestino.Cells(wsDestino.Rows.Count, "C").End(xlUp).Row + 5

Antes de ejecutar la macro, revisa la hoja destino en la columna C, que no tengas celdas con datos o con espacios en blanco, es decir, primero limpia la hoja, ya que está encontrando alguna celda con datos y en es fila + 5 filas abajo es donde empieza a poner los datos.

;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas