Visual Basic - Ayuda para crear una macro

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda para crear una macro

Publicado por jfdelamor (5 intervenciones) el 23/07/2009 20:44:31
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 Webcsv90622.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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda para crear una macro

Publicado por Alexandrel (15 intervenciones) el 10/08/2009 21:34:06
mira, para detectar que es el ultimo dia del mes, seria un codigo como este:

fecha = #8/31/2009# 'mm/dd/aaaa
x = Month(fecha)
y = Month(fecha + 1)
If Month(fecha) <> Month(fecha + 1) Then MsgBox ("ultimo dia del mes")

para ir poniendo el nombre de los archivos seria algo asi
dim w as string
for x=1 to day(fecha)
w=str(x)+str(month(date))+str(year(date))+".csv" 'en w se forma el nombre del 'archivo
'codigo del archivo
next x

y pues algo parecido seria para el rango, pero algo como rango="a" + str(ciclo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar