Ayuda con macro
Publicado por EMilio (1 intervención) el 07/01/2008 05:18:45
Hola amigos tngo un problema en mi chamba y no se como solucionarlo, espero q me puedan ayudar x favor..
el problemas es el siguiente: dentro de una misma carpeta tengo varios archivos excel, pero q son fijos en cantidad 150 archivos con nombres como por ejemplo 29950; 30540:56480, etc, no son consecutivos los nombres de archivos, pero si tienen un modelo definido, me expliko, si en el archivo 29950 en la celda A1 dice nombre del empleado y a su costado celda A2 dice Juan, en el archivo 30540 tambien està el mismo formato, en la A2 estarà x ejemplo roberto, es decir son fichas con el mismo formato, entonces lo q yo tengo en otra hoja dentro d la misma carpeta una macro, que en la cabecera tenga los datos q me interesan como por ejemplo nombre, direccion , etc, y abajo como registro vinculo los datos de TODOS los archivos, cosa q cuando se actualice una ficha yo abro la hoja con macro y vea los datos actulizados, pero el problema es que en el codigo tendria q ser el mismo para los 150 aarchivos es decir para la hoja 29950 serà
Range("A1").Select
Workbooks.Open Filename:= _
"C:Documents and SettingsmagdaEscritoriomacroTdP29950.xls"
Windows("Macro.xls").Activate
ActiveCell.FormulaR1C1 = "=+'29950.xls'!R5C1:R5C4"
Range("B1").Select
ActiveCell.FormulaR1C1 = "=+'29950.xls'!R7C2"
Range("C1").Select
ActiveCell.FormulaR1C1 = "=+'29950.xls'!R9C2"
Range("C2").Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.End(xlToLeft).Select
Windows("29950.xls").Activate
ActiveWorkbook.Close
y para la hoja 30540
Workbooks.Open Filename:= _
"C:Documents and SettingsmagdaEscritoriomacroTdP30540.xls"
Windows("Macro.xls").Activate
ActiveCell.FormulaR1C1 = "=+'30540.xls'!R5C1:R5C4"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=+'30540.xls'!R7C2"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=+'30540.xls'!R9C2"
Range("C3").Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.End(xlToLeft).Select
Windows("30540.xls").Activate
ActiveWorkbook.Close
y asi sucesivamente para los 150 archivos q tngo, y como ves es el mismo codigo para cada archivo, lo unico q cambia es el nombre de archivo y la posicion donde kiero q se pongan los datos vinculados, a lo que voy es como podria hacer para q eso se resuma en un pedaso de codigo, no se con una sentencia donde pueda almacenar todos los nombres de mis archivos y luego q los haga correr no se con un for, no se como podria hacerlo, deveras les agradecería demasiado si llegaran a soluicionarme est problema gracias de antemano
el problemas es el siguiente: dentro de una misma carpeta tengo varios archivos excel, pero q son fijos en cantidad 150 archivos con nombres como por ejemplo 29950; 30540:56480, etc, no son consecutivos los nombres de archivos, pero si tienen un modelo definido, me expliko, si en el archivo 29950 en la celda A1 dice nombre del empleado y a su costado celda A2 dice Juan, en el archivo 30540 tambien està el mismo formato, en la A2 estarà x ejemplo roberto, es decir son fichas con el mismo formato, entonces lo q yo tengo en otra hoja dentro d la misma carpeta una macro, que en la cabecera tenga los datos q me interesan como por ejemplo nombre, direccion , etc, y abajo como registro vinculo los datos de TODOS los archivos, cosa q cuando se actualice una ficha yo abro la hoja con macro y vea los datos actulizados, pero el problema es que en el codigo tendria q ser el mismo para los 150 aarchivos es decir para la hoja 29950 serà
Range("A1").Select
Workbooks.Open Filename:= _
"C:Documents and SettingsmagdaEscritoriomacroTdP29950.xls"
Windows("Macro.xls").Activate
ActiveCell.FormulaR1C1 = "=+'29950.xls'!R5C1:R5C4"
Range("B1").Select
ActiveCell.FormulaR1C1 = "=+'29950.xls'!R7C2"
Range("C1").Select
ActiveCell.FormulaR1C1 = "=+'29950.xls'!R9C2"
Range("C2").Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.End(xlToLeft).Select
Windows("29950.xls").Activate
ActiveWorkbook.Close
y para la hoja 30540
Workbooks.Open Filename:= _
"C:Documents and SettingsmagdaEscritoriomacroTdP30540.xls"
Windows("Macro.xls").Activate
ActiveCell.FormulaR1C1 = "=+'30540.xls'!R5C1:R5C4"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=+'30540.xls'!R7C2"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=+'30540.xls'!R9C2"
Range("C3").Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.End(xlToLeft).Select
Windows("30540.xls").Activate
ActiveWorkbook.Close
y asi sucesivamente para los 150 archivos q tngo, y como ves es el mismo codigo para cada archivo, lo unico q cambia es el nombre de archivo y la posicion donde kiero q se pongan los datos vinculados, a lo que voy es como podria hacer para q eso se resuma en un pedaso de codigo, no se con una sentencia donde pueda almacenar todos los nombres de mis archivos y luego q los haga correr no se con un for, no se como podria hacerlo, deveras les agradecería demasiado si llegaran a soluicionarme est problema gracias de antemano
Valora esta pregunta


0