Problema con macro con ActiveWorkbook.Name en libro... Uso un libro para extraer datos de unas hojas de excel en un directorio..

La segunda ver que uso una macro no me da resultado la primera ver si...

Uso un libro para extraer datos de un directorio con varias hojas de excel y cuando la uso la primera vez funciona pero cuando selecciono otro directorio no...agradecería vuestra ayuda ya que es muy importante para mi...

Gracias

1 respuesta

Respuesta

Debieras escribir aquí la macro (o dejar el libro en algún sitio de descarga) para que podamos analizarla.

Sdos

Elsa

esta es la macro 1

Sub hacer_informe()

Application.ScreenUpdating = False
informe1 = ActiveWorkbook.Name
ChDir "C:\RECIBIDO"
ARCHI2 = Dir("*.xls*")
Do While ARCHI2 <> ""
Workbooks.Open ARCHI2
OTRO2 = ActiveWorkbook.Name
Workbooks(informe1).Activate
FILALIBRE2 = Sheets(1).Range("a65000").End(xlUp).Row + 1
Cells(FILALIBRE2, 1).Value = Workbooks(OTRO2).Sheets(1).Range("c5")
Cells(FILALIBRE2, 2).Value = Workbooks(OTRO2).Sheets(1).Range("c7")
Cells(FILALIBRE2, 3).Value = Workbooks(OTRO2).Sheets(1).Range("c8")
Cells(FILALIBRE2, 4).Value = Workbooks(OTRO2).Sheets(1).Range("c9")
Cells(FILALIBRE2, 5).Value = Workbooks(OTRO2).Sheets(1).Range("c10")
Cells(FILALIBRE2, 6).Value = Workbooks(OTRO2).Sheets(1).Range("c11")
Cells(FILALIBRE2, 7).Value = Workbooks(OTRO2).Sheets(1).Range("c13")
Cells(FILALIBRE2, 8).Value = Workbooks(OTRO2).Sheets(1).Range("J54")
Cells(FILALIBRE2, 9).Value = Workbooks(OTRO2).Sheets(1).Range("K54")
Cells(FILALIBRE2, 10).Value = Workbooks(OTRO2).Sheets(1).Range("q58")
Workbooks(OTRO2).Close False
ARCHI2 = Dir()
Loop
Application.ScreenUpdating = True

End Sub

y esta es la 2

que al ejecutarla en otra hoja del libro para sacar los datos de recibido ...no da nada

Sub hacer_informe()

Application.ScreenUpdating = False
informe1 = ActiveWorkbook.Name
ChDir "C:\RECIBIDO"
ARCHI2 = Dir("*.xls*")
Do While ARCHI2 <> ""
Workbooks.Open ARCHI2
OTRO2 = ActiveWorkbook.Name
Workbooks(informe1).Activate
FILALIBRE2 = Sheets(1).Range("a65000").End(xlUp).Row + 1
Cells(FILALIBRE2, 1).Value = Workbooks(OTRO2).Sheets(1).Range("c5")
Cells(FILALIBRE2, 2).Value = Workbooks(OTRO2).Sheets(1).Range("c7")
Cells(FILALIBRE2, 3).Value = Workbooks(OTRO2).Sheets(1).Range("c8")
Cells(FILALIBRE2, 4).Value = Workbooks(OTRO2).Sheets(1).Range("c9")
Cells(FILALIBRE2, 5).Value = Workbooks(OTRO2).Sheets(1).Range("c10")
Cells(FILALIBRE2, 6).Value = Workbooks(OTRO2).Sheets(1).Range("c11")
Cells(FILALIBRE2, 7).Value = Workbooks(OTRO2).Sheets(1).Range("c13")
Cells(FILALIBRE2, 8).Value = Workbooks(OTRO2).Sheets(1).Range("J54")
Cells(FILALIBRE2, 9).Value = Workbooks(OTRO2).Sheets(1).Range("K54")
Cells(FILALIBRE2, 10).Value = Workbooks(OTRO2).Sheets(1).Range("q58")
Workbooks(OTRO2).Close False
ARCHI2 = Dir()
Loop
Application.ScreenUpdating = True

End Sub

eso es lo que me pasa ejecuto la primera y me salen los datos...voy a la hoja 2 ejecuto la segunda y no me sale nada ....las hojas que hay en los directorios tienen el mismo formato con datos distintos...

gracias

Leyendo el código resulta que estás tomando los mismos archivos de la misma carpeta, y volcando los mismos datos en tu hoja activa... a partir de la primer fila libre según HOJA 1.

Es decir que si en la sheets(1) los datos llegaron hasta la fila 1500, ahora en la 2da hoja los datos se te están copiando a partir de la fila 1501... .

Debes buscar la filalibre en cada hoja donde ejecutes la macro, por ej, usándola así:

FILALIBRE2 = ActiveSheet.Range("a65000").End(xlUp).Row + 1

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas