abrir archivos distintos,extraer datos, cerrar archivos
Publicado por Oscar Ordenes (3 intervenciones) el 10/05/2017 19:22:41
Buenas tardes a todos, no soy un experto en VBA y trato de hacer lo mejor que puedo, en este caso tengo el sgte problema.
Tengo 30 archivos diferentes por fecha para un local y son 50 locales con nombres distintos. Debo extraer de cada achivo información que aparece en ellas. Hice una macro que efectivamente extrae el dato y lo copia a un archivo base, el problema es que al copiar n veces esta forma de extraer el dato me arroja un error de compilación, procedimiento demasiado largo. Adjunto macro que hice para un local.
Los nombres de los archivos varían por número de local y fecha, a la macro debo estar cambiando la fecha y local. También señalo que los archivos estan en carpetas distintas CarpetaF86 30 archivos Carpeta F90 30 archivos, así en adelante
01052017F86.xls
01052017F90.xls
01052017F107.xls
01052017F86.xls
02052017F86.xls
03052017F86.xls
Esta es la macro
Tengo 30 archivos diferentes por fecha para un local y son 50 locales con nombres distintos. Debo extraer de cada achivo información que aparece en ellas. Hice una macro que efectivamente extrae el dato y lo copia a un archivo base, el problema es que al copiar n veces esta forma de extraer el dato me arroja un error de compilación, procedimiento demasiado largo. Adjunto macro que hice para un local.
Los nombres de los archivos varían por número de local y fecha, a la macro debo estar cambiando la fecha y local. También señalo que los archivos estan en carpetas distintas CarpetaF86 30 archivos Carpeta F90 30 archivos, así en adelante
01052017F86.xls
01052017F90.xls
01052017F107.xls
01052017F86.xls
02052017F86.xls
03052017F86.xls
Esta es 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
47
48
49
50
51
52
53
54
55
Sub BD()
sw1 = 4
sw2 = 6
fec = 3
a = 2
Workbooks.Open Filename:= _
"G:\Department\Contraloria\Operacion Directa\F86\RCT\2017\MAYO\07052017F86.xls"
Sheets("Faltantes Combustible").Select
Do While Workbooks("07052017F86.xls").Worksheets("Faltantes Combustible").Cells(sw2, 1) <> ""
Do While Workbooks("07052017F86.xls").Worksheets("Faltantes Combustible").Cells(5, fec) <> "Total Mes"
If Workbooks("07052017F86.xls").Worksheets("Faltantes Combustible").Cells(sw2, fec) <> "" Then
Workbooks("Status_Faltantes_Mayo2017.xlsm").Worksheets("Descuentos_Mayo").Cells(a, 6) = Workbooks("07052017F86.xls").Worksheets("Faltantes Combustible").Cells(5, fec) 'Fecha
Workbooks("Status_Faltantes_Mayo2017.xlsm").Worksheets("Descuentos_Mayo").Cells(a, 9) = Workbooks("07052017F86.xls").Worksheets("Faltantes Combustible").Cells(sw2, 2) 'Rut
Workbooks("Status_Faltantes_Mayo2017.xlsm").Worksheets("Descuentos_Mayo").Cells(a, 12) = Workbooks("07052017F86.xls").Worksheets("Faltantes Combustible").Cells(sw2, fec) 'Monto
a = a + 1
fec = fec + 1
Else
fec = fec + 1
End If
Loop
sw2 = sw2 + 1
fec = 3
Loop
Workbooks("07052017F86.xls").Activate
Sheets("Faltantes Tienda").Select
sw2 = 6
Do While Workbooks("07052017F86.xls").Worksheets("Faltantes Tienda").Cells(sw2, 1) <> ""
Do While Workbooks("07052017F86.xls").Worksheets("Faltantes Tienda").Cells(5, fec) <> "Total Mes"
If Workbooks("07052017F86.xls").Worksheets("Faltantes Tienda").Cells(sw2, fec) <> "" Then
Workbooks("Status_Faltantes_Mayo2017.xlsm").Worksheets("Descuentos_Mayo").Cells(a, 6) = Workbooks("07052017F86.xls").Worksheets("Faltantes Tienda").Cells(5, fec) 'Fecha
Workbooks("Status_Faltantes_Mayo2017.xlsm").Worksheets("Descuentos_Mayo").Cells(a, 9) = Workbooks("07052017F86.xls").Worksheets("Faltantes Tienda").Cells(sw2, 2) 'Rut
Workbooks("Status_Faltantes_Mayo2017.xlsm").Worksheets("Descuentos_Mayo").Cells(a, 12) = Workbooks("07052017F86.xls").Worksheets("Faltantes Tienda").Cells(sw2, fec) 'Monto
a = a + 1
fec = fec + 1
Else
fec = fec + 1
End If
Loop
sw2 = sw2 + 1
fec = 3
Loop
'ActiveWorkbook.Close Savechanges:=False
Workbooks("07052017F86.xls").Close Savechanges:=False
MsgBox ("Fin Proceso......")
End Sub
Valora esta pregunta
0