Excel instances sluiten niet

Status
Niet open voor verdere reacties.

dandiep

Gebruiker
Lid geworden
18 apr 2016
Berichten
27
Goedenavond,

Het is alweer even geleden dat ik me hier gemeld heb met een hulpvraag. Met het betere kopieer en leenwerk van het almachtige www vind ik mijn weg langzaam in het VB wereldjes.
Niet alles is even efficiënt, maar als het werkt ben ik al blij. Deze keer krijg ik het niet werken en dan grijp ik graag terug op dit mooie forum, helpmij.nl.

Ik heb een stukje code aan elkaar kunnen knopen waarbij ik vanuit Access in Windows verkenner meerdere Excel bestanden kan selecteren en openen.
De informatie uit de betreffende Excel documenten worden geïmporteerd in een tabel. Excel wordt hiertoe geopend en weer netjes gesloten, tenminste dat lijkt zo in de taakbeheer manager.
In de taakbeheer manager wordt het proces Excel netjes afgesloten. Als ik later echter een ander Excel document open, worden de ingelezen bestanden alsnog in Excel geopend...:shocked:
Als ik alleen Excel open (dus geen spreadsheet) dan gebeurd het niet, open ik dan alsnog vanuit Excel een spreadsheet dan worden de reeds ingelezen spreadsheet weer geopend.

E.e.a. is reproduceer met bijgaande test db.
1) Bijlagen in één folder plaatsen en helpmij.zip uitpakken.
2) helpmij.accdb openen
3) mcrImport starten
4) bladeren naar de XSL bestanden F1, F2, F3, selecteren en [Openen]
5) Open een willekeurige spreadsheet niet zijnde F1, F2, F3
6) De gekozen spreadsheet en F1, F2 en F3 worden geopend.

Ik heb het gezien dat
Set oExcel = GetObject(, "Excel.Application") 'Bind to existing instance of Excel
If Err.Number <> 0 Then 'Could not get instance of Excel, so create a new one

niet altijd werkt. Soms blijft Err.Number <>0 ongeacht er reeds een Excel instance open staat of niet.

Bekijk bijlage Helpmij.zip
Bekijk bijlage F1.xlsx
Bekijk bijlage F2.xlsx
Bekijk bijlage F3.xlsx

Wie o wie kan me hierbij verder helpen.
 
Dit werkt ook. Sterker nog: hier heb je geen enkel probleem met Excel :).
Code:
Function Import()
On Error GoTo Error_Handler
Dim strFile         As String
Dim strFolder       As String
Dim varItem         As Variant
    
    'Start browser for file selection by user
    Set f = Application.FileDialog(3)
    f.AllowMultiSelect = True
    If f.Show Then
        For Each varItem In f.SelectedItems
            On Error Resume Next
            DoCmd.TransferSpreadsheet acImport, , "tblImport", CStr(varItem), True
        Next
    End If
    Exit Function

Error_Handler:
    MsgBox Error$

End Function
 
Beste OctaFish,

Hartelijk dank voor deze eenvoudige code, het werkt perfect en lekker vlot.
De volgende uitdaging is echter dat ik uit iedere spreadsheet ook een waarde uit een bepaalde cel wil ophalen. Deze waarde ken ik later toe aan ieder record van de geïmporteerde data.

Inmiddels is dit probleem ook weer opgelost, helaas nog steeds op de oude methodiek. Ik had het afsluiten niet goed gedaan.
De applicatie sloot ik wel af, echter niet de spreadsheet zelf.

Nu aangepast en lijkt alles goed te werken, zie nieuwe bijlage HelpMij_1.

Bekijk bijlage Helpmij_1.zip

Mocht u nog bereid zijn om een efficiëntere uitvoering voor te stellen, GRAAG!

Gr.
Danny
 
Bedankt!

Octafish,

Bedankt voor de support tot nu toe!
Deze hulpvraag ga ik sluiten.

Er komt nog één vraag en dan is mijn project (hopelijk) gereed.

Gr.
Danny
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan