Blocco primo rigo



  • Blocco primo rigo
    di alexps81 data: 08/12/2015 17:48:17

    Buona sera a tutti vuoi esperti, vorrei esporvi un quesito inerente all'esportazione di una tabella da Access in Excel tramite VBA e con blocco primo rigo. Vi posto il codice in mio possesso, ma che non è farina del mio sacco. Anzi ringrazio @Vf per averlo scritto x me.
    Dunque, come dicevo, non so come potrei fare a far in modo che mentre fa tutto quello che gli dice di fare il codice, il primo rigo della tabella si deve bloccare. Ho provato a vedere il codice generato dal registratore di macro in Excel, ma non saprei come inserirlo all'interno di questo. In poche parole il file che si genera, deve contenere il blocco riquadri al primo rigo.
    Mi date una mano per piacere?
     
    Private Sub btnExcel_Click()
    
    'esporta in Excel nella cartella e con nome specificato di seguito.
    FilterOn = False
    Const NAME_REPORT_EXCEL = "\MIREPMOBFS1DatiUtente$	lcDesktopReport Elenco Generale.xlsx"
    
    Dim oExcel As Object
    
        On Error GoTo gest_err
        Echo False
        DoCmd.OutputTo acOutputForm, outputformat:=acFormatXLSX, outputfile:=NAME_REPORT_EXCEL, autostart:=False
        Set oExcel = CreateObject("Excel.Application")
        oExcel.workbooks.Open NAME_REPORT_EXCEL
        With oExcel
           'cancella le colonne A, B, J
           .Sheets("m_elenco_generale").Range("A:B;J:J").Delete
           'applica il filtro al primo rigo
           .Sheets("m_elenco_generale").Range("A1").AutoFilter Field:=1
           .activeworkbook.Close True
            oExcel.Quit
        End With
        Set oExcel = Nothing
        Echo True
        MsgBox "Esportazione del registro in Excel effettuata con successo." & vbCrLf & "Controlla sul desktop", vbInformation, "Successful"
        Exit Sub
        
    gest_err:
        If Not (oExcel Is Nothing) Then
            oExcel.Quit
            Set oExcel = Nothing
        End If
        MsgBox "L'esportazione del registro in Excel non è andata a buon fine." & vbCrLf & "Errore: " & Err.Description, vbExclamation, "Attenzione"
        Exit Sub
    End Sub



  • di patel data: 08/12/2015 18:53:35

    prima di exit sub inserisci
     
        Range("A1").Select
        With ActiveWindow
            .SplitColumn = 0
            .SplitRow = 1
        End With
        ActiveWindow.FreezePanes = True
    






  • di alexps81 data: 08/12/2015 19:02:54

    Ciao , grazie per l'intervento, ho provato così come mia hai suggerito, ma mi da da errore. Muble....mubleee
     
    Private Sub btnExcel_Click()
    'esporta in Excel nella cartella e con nome specificato di seguito.
    FilterOn = False
    'Const NAME_REPORT_EXCEL = "\MIREPMOBFS1DatiUtente$	lcDesktopReport Elenco Generale.xlsx"
    Const NAME_REPORT_EXCEL = "C:UsersSilvia&AleDesktopReport Elenco Generale.xlsx"
    
    
    Dim oExcel As Object
        On Error GoTo gest_err
        Echo False
        DoCmd.OutputTo acOutputForm, outputformat:=acFormatXLSX, outputfile:=NAME_REPORT_EXCEL, autostart:=False
        Set oExcel = CreateObject("Excel.Application")
        oExcel.workbooks.Open NAME_REPORT_EXCEL
        With oExcel
           .Sheets("m_elenco_generale").Range("A:B;J:J").Delete
           .Sheets("m_elenco_generale").Range("A1").AutoFilter Field:=1
           .activeworkbook.Close True
            oExcel.Quit
        End With
        Set oExcel = Nothing
        Echo True
        
         Range("A1").Select
        With ActiveWindow
            .SplitColumn = 0
            .SplitRow = 1
        End With
        ActiveWindow.FreezePanes = True
        
        MsgBox "Esportazione del registro in Excel effettuata con successo." & vbCrLf & "Controlla sul desktop", vbInformation, "Successful"
        Exit Sub
        
    gest_err:
        If Not (oExcel Is Nothing) Then
            oExcel.Quit
            Set oExcel = Nothing
        End If
        MsgBox "L'esportazione del registro in Excel non è andata a buon fine." & vbCrLf & "Errore: " & Err.Description, vbExclamation, "Attenzione"
        Exit Sub
    End Sub
    



  • di Marius44 data: 08/12/2015 21:10:46

    Salve a tutti

    Nel codice che ha suggerito patel (un saluto) cioè la riga
    Range("A1").Select
    va sostituita con questa
    Range("A2").Select

    Ciao,
    Mario



  • di alexps81 data: 08/12/2015 21:24:30

    Niente da fare.

    Va in debug ed evidenzia "Range", poi dice "Sub o Function non definita"
    Non è che il codice va scritta in mezzo a:

    With oExcel
    .Sheets("m_elenco_generale").Range("A:B;J:J").Delete
    .Sheets("m_elenco_generale").Range("A1").AutoFilter Field:=1
    .activeworkbook.Close True
    oExcel.Quit
    End With

    In realtà è qui che si formatta la tabella (Elimina le colonne e applica il filtro), magari qui va inserito il codice che va a bloccare il primo rigo. A meno credo.
    Voi che dite?



  • di Marius44 data: 09/12/2015 00:50:52

    Ribadisco quanto detto nel post precedente. DEVE essere Range("A2").Select

    Nel tuo ultimo post noto che

    With oExcel
    .Sheets("m_elenco_generale").Range("A:B;J:J").Delete
    .Sheets("m_elenco_generale").Range("A1").AutoFilter Field:=1
    .activeworkbook.Close True '<=== il TRUE non ci va come si nota anche dal fatto che la A e la W non sono maiuscole
    oExcel.Quit
    End With

    Quando dici "Va in debug ed evidenzia "Range", poi dice "Sub o Function non definita" " quale riga viene evidenziata?

    Ciao,
    Mario



  • di patel data: 09/12/2015 08:10:44

    se non alleghi un file di esempio tutti i suggerimenti non possono essere testati





  • di alexps81 data: 09/12/2015 12:15:12

    Vorrei allegare un file di prova, ma come faccio? La tabella proviene da un database di Access.



  • di patel data: 09/12/2015 13:16:10

    cosa cambia tra allegare un file di access ed uno di excel ?





  • di alexps81 data: 09/12/2015 14:27:31

    Ho caricato l'allegato PROVA.RAR, chiaramente con funzionalità ridottissime rispetto a ciò che fa realmente il database completo. Bisogna cliccare sul pulsante ESPORTA ELENCO IN EXCEL.
    Spero si trovi una soluzione.



  • di alexps81 data: 10/12/2015 08:35:24

    Buon giorno a tutti. Ieri ho caricato il file di esempio. Qualcuno è riuscito a trovare una soluzione?



  • di patel data: 10/12/2015 09:09:00

    pero devi aiutarci e non metterci i bastoni tra le ruote, hai allegato un file con i menù nascosti, qui siamo più esperti di excel che di access, come si fa ad accedere al vba ?





  • di alexps81 data: 10/12/2015 09:11:27

    Uhmmm....provate a tenere premuto SHIFT mentre si fa doppio click sul file da aprire



  • di alexps81 data: 10/12/2015 12:17:07

    Chiedo scusa, siete riusciti ad entrare in modalità esclusiva tenendo premuto SHIFT mentre si fa doppio click su file?



  • di patel data: 10/12/2015 12:45:47

    prova ora
     
    Private Sub btnExcel_Click()
    'esporta in Excel nella cartella e con nome specificato di seguito.
    FilterOn = False
    Const NAME_REPORT_EXCEL = "\MIREPMOBFS1DatiUtente$	lcDesktopReport Elenco Generale.xlsx"
    
    
    Dim oExcel As Object
        On Error GoTo gest_err
        Echo False
        DoCmd.OutputTo acOutputForm, outputformat:=acFormatXLSX, outputfile:=NAME_REPORT_EXCEL, autostart:=False
        Set oExcel = CreateObject("Excel.Application")
        oExcel.workbooks.Open NAME_REPORT_EXCEL
        With oExcel
           .Sheets("m_elenco_generale").Range("A:B;J:J").Delete
           .Sheets("m_elenco_generale").Range("A1").AutoFilter Field:=1
           .Range("A1").Select
            With .ActiveWindow
              .SplitColumn = 0
              .SplitRow = 1
              .FreezePanes = True
            End With
           .activeworkbook.Close True
            oExcel.Quit
        End With
        Set oExcel = Nothing
        Echo True
    
        MsgBox "Esportazione del registro in Excel effettuata con successo." & vbCrLf & "Controlla sul desktop", vbInformation, "Successful"
        Exit Sub
        
        
    gest_err:
        If Not (oExcel Is Nothing) Then
            oExcel.Quit
            Set oExcel = Nothing
        End If
        MsgBox "L'esportazione del registro in Excel non è andata a buon fine." & vbCrLf & "Errore: " & Err.Description, vbExclamation, "Attenzione"
        Exit Sub
    End Sub
    






  • di alexps81 data: 10/12/2015 13:00:17

    E U R E K A !!!
    Funziona a meraviglia.
    Grazie per il supporto e scusa x averti fatto impazzire