Ayuda para crear una macro
Publicado por jfdelamor (5 intervenciones) el 24/07/2009 11:45:33
Hola amigos
me dirjo a ustedes para plantearles mi problema, tengo que generar una serie de fichero mensuales a partir de ficheros diarios, de forma que yo tengo un conjunto de archivos 090712.csv, 090711.csv, y asi con todos los dias del mes, y necesito construir un fichero el fichero mensual que integre todos los .csv en uno solo, para ello he creado una macro en excel que importa los datos, cuyo código es el siguiente:
Sub Macro1()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:Documents and SettingsJuan FranDesktopPagina Webcsv 90622.csv", _
Destination:=Range("A1"))
.Name = "090622"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("A100").Select
End Sub
Lo que tendria que hacer seria:
1. Generar un código que me detecte que es el ultimo dia del mes
2. Si es el ultimo dia del mes se ejecuta el codigo que consistiria en un bucle que tiene que ir desde el archivo (Por ejemplo si estamos en julio 2009) 090701.csv hasta el archivo 090731.csv.
3. Ir incrementantdo el parámetro Destination:=Range("A1")) para que se vaya incrementando en 100 cada vez que se haga un ciclo del bucle, de forma que los nuevos datos no machaquen a los anteriores.
El problema es que no tengo ni idea de visual basic, agradeceria cualquier tipo de ayuda.
Saludos
me dirjo a ustedes para plantearles mi problema, tengo que generar una serie de fichero mensuales a partir de ficheros diarios, de forma que yo tengo un conjunto de archivos 090712.csv, 090711.csv, y asi con todos los dias del mes, y necesito construir un fichero el fichero mensual que integre todos los .csv en uno solo, para ello he creado una macro en excel que importa los datos, cuyo código es el siguiente:
Sub Macro1()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:Documents and SettingsJuan FranDesktopPagina Webcsv 90622.csv", _
Destination:=Range("A1"))
.Name = "090622"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("A100").Select
End Sub
Lo que tendria que hacer seria:
1. Generar un código que me detecte que es el ultimo dia del mes
2. Si es el ultimo dia del mes se ejecuta el codigo que consistiria en un bucle que tiene que ir desde el archivo (Por ejemplo si estamos en julio 2009) 090701.csv hasta el archivo 090731.csv.
3. Ir incrementantdo el parámetro Destination:=Range("A1")) para que se vaya incrementando en 100 cada vez que se haga un ciclo del bucle, de forma que los nuevos datos no machaquen a los anteriores.
El problema es que no tengo ni idea de visual basic, agradeceria cualquier tipo de ayuda.
Saludos
Valora esta pregunta


0