+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: ACCESS VBA: non termina correttamente applicazione Excel

  1. #1
    L'avatar di Elimar
    Elimar non è in linea Scribacchino
    Luogo
    Milano
    Post
    654

    ACCESS VBA: non termina correttamente applicazione Excel

    Ciao a tutti,
    dopo parecchio tempo eccomi nuovamente a tediarvi con i miei problemi.

    Ho provato a cercare sul forum, ma non sono riuscito a capire come applicare i suggerimenti forniti ad altri utenti al mio caso specifico

    Ho la necessità di far importare un file excel in un db di access.
    Questo non sarebbe problematico, se non fosse che ho delle righe di intestazioni dell'estrazione che viene effettuata su excel che non devono essere importate in Access.

    Per ovviare a questa problematica ho scritto questo codice che sembra fare al caso mio:


    codice:
    'variabili per la gestione dei file excel
    Public xlApp As Object
    Public xlBook As Object
    Public xlSheet As Object
    Public AEx As Integer
    
    Function eliminaRigheNonUtiliFileExcel()
    
    
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path & "\Input Database\Indagine Raccolta Netta.xlsx")
    
    
    For AEx = 1 To Sheets.Count
      Set xlSheet = xlBook.Worksheets(AEx)
      Range("A1").Select
      Do While ActiveCell <> "BANCA"
        Selection.EntireRow.Delete
      Loop
    Next
    xlApp.DisplayAlerts = False
    xlBook.Close True
    xlApp.DisplayAlerts = True
    xlApp.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
    
    End Function
    Il problema è che Excel non viene terminato ma rimane "latente", passatemi il termine nelle Attività, infatti se avvio la gestione attività mi ritrovo Excel anche se non ho alcuna cartella aperta.

    Dove sbaglio??

    Ringrazio per l'attenzione.
    Ciao

    Andrea

    Spero di esserti stato di aiuto.

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,915
    Spiega prima cosa devi fare... perchè puoi IMPORTARE da uno SHEET un RANGE specifico e Bypassare la RIGA 1...
    Quindi potrebbe essere che tu stia facendo una cosa inutile.

    P.S. il codice che scrivi... non va bene... è scritto per EXCEL ma in Access devi riferirti agli oggetti.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  3. #3
    L'avatar di Elimar
    Elimar non è in linea Scribacchino
    Luogo
    Milano
    Post
    654
    Ho la necessità di importare dei dati, presenti in due fogli della cartella che partono sempre da una riga fissa, la 7, ma che possono avere lunghezza differente (+ o men o righe)

    Quote Originariamente inviato da @Alex Visualizza il messaggio
    P.S. il codice che scrivi... non va bene... è scritto per EXCEL ma in Access devi riferirti agli oggetti.
    Effettivamente hai ragione, perché conoscendo meglio excel, ho adattato il codice ad access


    Grazie mille
    Ciao

    Andrea

    Spero di esserti stato di aiuto.

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,915
    Devi solo capire fino a dove importare.... ma il codice che usi per CANCELLARE non serve a nulla...!
    Esempio:
    codice:
    DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=5, _
                tablename:="tmpTableName", FileName:="SomeExcelFile", _
                Hasfieldnames:=False, Range:="WorkSheet!A7:Z23"
    Quindi con questa semplice istruzione risolvi META'....
    Quello che ti resta è individuare la CELLA FINALE...!
    Per questo apri il File di EXCEL, punti alla prima RIGA UTILE emulando il CTRL+PgDown, stessa cosa per andare all'ultima Colonna... se serve...
    Leggi la Cella e ricostruisci il RANGE corretto da passare transfert....(dopo aver chiuso correttamente excel).
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  5. #5
    L'avatar di Elimar
    Elimar non è in linea Scribacchino
    Luogo
    Milano
    Post
    654
    Grazie @Alex,
    preziosissimo come al solito.
    Ciao

    Andrea

    Spero di esserti stato di aiuto.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi