Como grabar macro para actualizar un archivo diariamente con archivos de numero filas diferentes

El problema creo que no es difícil, pero no consigo dar con la solución. Tengo un archivo que lo debo actualizar diariamente, y he pensado grabar una macro. Cada día abro el archivo y pego los datos de otra fuente "1.txt". El problema me surge ya que estos archivos, siempre con el mismo nombre "1.txt", tienen siempre un numero diferente de filas, y al copiar y pegar unas formulas que tengo entre las columnas I a la ES, no coinciden con la ultima fila. Entiendo que debería utilizar referencias relativas para grabar la macro, pero no tengo éxito.

¿Me podría ayudar?

Muchas gracias de antemano. Le escribo la fuente por si le puede servir de ayuda, para entender el problema.

Sub actualizar()
'
' actualizar Macro
' Macro grabada el 04/05/2012 por Oix
'
' Acceso directo: CTRL+a
'
ChDir "C:\Documents and Settings\oix\Escritorio\Existencias_diaria"
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\oix\Escritorio\Existencias_diaria\1.txt", Origin:= _
-535, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 4), Array(7, 1), Array(8, 1)), _
TrailingMinusNumbers:=True
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Windows("Copia de Informes_ejecutivos_mayo.xls").Activate
ActiveSheet.Paste
Range("I2").Select
ActiveWindow.LargeScroll ToRight:=1
Range("I2:S2").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("I2:S35152")
Range("I2:S35152").Select
End Sub

1 respuesta

Respuesta
1

'4c7569735f50

Si la intencion es que los datos los pegue secuencialemnte a continuacion de los ya exstentes en la hoja, pues entonces lo primero qque debes hacer antes de importar los datos, es contar cuantos datos existen ya en la hoja y asi luego solo posicionarte sobre la sgte celda vacia y desde alli pegarlos

La sgte funcion cuenta todos los elementos de columna A

Application. WorksheetFunction. CountA(Range("A:A"))

Si declaras una variable que llevara la cuenta de las filas seria:

dim fila as long

fila=application.WorksheetFunction.CountA(Range("A:A"))+1

luego en tu macro sería:

Range("A" & fila).Select

Asi lo pimero que haces es ir a la sgte fila vacia

** Importante que no existan filas vacias entre los datos de la hoja

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas