Como juntar acciones en VBA

Antes que nada agradecerte tu tiempo.
No tengo mucha idea de VBA y tengo una pregunta que no se si tendrá fácil solución.
Tengo una base de datos de access de dónde quiero exportar diariamente una consulta a excel. Tengo tres "acciones" (no sé como llamarlas) en VBA y quiero que al pulsar un botón en un formulario realice las tres. Son éstas:
*Esto lo consigo con una macro de access:
Private Sub Comando23_Click()
On Error GoTo Err_Comando23_Click
    Dim stDocName As String
    stDocName = "FALTAS_DIARIAS"
    DoCmd.OutputTo acOutputQuery, stDocName, acFormatXLS, "Faltas Diarias" & FileName
Exit_Comando23_Click:
    Exit Sub
Err_Comando23_Click:
    MsgBox Err.Description
    Resume Exit_Comando23_Click
End Sub
*Para abrir el documento que ha exportado y modifique el formato:
Sub formato()
        OpenSpreadsheet
        Rows("1:1").Select
        Selection.Font.Bold = True
        Columns("A:K").Select
        Columns("A:K").EntireColumn.AutoFit
        Columns("A:A").Select
        Selection.NumberFormat = "m/d/yyyy"
        Columns("C:C").Select
        Selection.NumberFormat = "h:mm;@"
        Range("A1").Select
        ActiveWorkbook.SaveAs FileName:="H:\Faltas Entradas 17_04_2010.xlsm", _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Exit Sub
*Para guardar con el nombre más la fecha:
Sub guardarcomo()
a = Mid$(Date, 1, 2) 'Extrae el día de la fecha actual y lo deja en la variable a
b = Mid$(Date, 4, 2) 'Extrae el mes de la fecha actau y lo deja en la variable b
c = Mid$(Date, 7, 4) 'Extrae el año de la fecha actual y lo deja en lavariable c
d = a & "_" & b & "_" & c 'Junta las tres variable  y pone un guion entre el dia, mes y año
ChDir _
        "C:/Proyectos" '
    ActiveWorkbook.SaveAs Filename:=d '
End Sub
No sé si me he explicado muy bien, ¿pero sería muy complicado que me hiciera todo al apretar el botón? (Primero exportar, abrir el archivo y cambiar el formato, guardar como con el nombre más la fecha y cerrar el archivo)

1 respuesta

Respuesta
1
Espero entender bien tu problema, en VBA, VB, VB.Net, puedes hacer llamadas a funciones que estén tanto en la misma clase como en clases diferentes.
Para hacer que tus funciones (o acciones como tu las llamas) se ejecuten desde un command solo llamalas desde el mismo botón
ejem:
Private Sub Comando23_Click() 
On Error GoTo Err_Comando23_Click 
    Dim stDocName As String 
    stDocName = "FALTAS_DIARIAS" 
    DoCmd.OutputTo acOutputQuery, stDocName, acFormatXLS, "Faltas Diarias" & FileName 
formato() ' Esto hara que se ejecute el SUB FORMATO() abajo especificado
guardarcomo() 'Esto hara que se ejecute el SUB GUARDARCOMO() 
Exit_Comando23_Click: 
    Exit Sub 
Err_Comando23_Click: 
    MsgBox Err.Description 
    Resume Exit_Comando23_Click 
End Sub
Espero haber contestado a tu pregunta, ejecutalo y dime como te salio
saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas