Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Klingon 33 am November 23, 2010, 16:20:02

Titel: Excel Arbeitsmappennamen auflisten
Beitrag von: Klingon 33 am November 23, 2010, 16:20:02
Hallo,
ich habe mehrere Workbooks von Excel auf meinem PC offen. nun will ich deren Namen auflisten. Das sollte der Code machen:

Dim a As Variant
Dim ExcelApp As Excel.Application
Dim oWorkbook As Workbooks

    Set ExcelApp = GetObject(, "Excel.Application")
    Set oWorkbook = Workbooks
   
        For Each a In Workbooks
            Debug.Print a.Name
        Next a

allerdings ist a = leer. also es werden keine Workbooks angezeigt.

kann jemand helfen?

mfg
Titel: Re: Excel Arbeitsmappennamen auflisten
Beitrag von: database am November 23, 2010, 16:48:00
Hallo,

ist dir vielleicht hiermit zu helfen?

m.E. müsste dein Code so ähnlich lauten:

Dim ExcelApp As Excel.Application
Dim oWorkbook As Workbook

    Set ExcelApp = GetObject(, "Excel.Application")
       
        For Each oWorkbook In ExcelApp
            Debug.Print oWorkbook.Name
        Next oWorkbook

set ExcelApp = Nothing


(ungetestet!)

Gruß
Peter
Titel: Re: Excel Arbeitsmappennamen auflisten
Beitrag von: Klingon 33 am November 24, 2010, 11:12:31
Hallo Peter,

bei der Zeile
       For Each a In Workbooks
kommt die Meldung
       Objekt unterstütst diese Eigenschaft oder Methode nicht

hast du noch ne Idee  ???
Titel: Re: Excel Arbeitsmappennamen auflisten
Beitrag von: database am November 24, 2010, 11:15:36
Hallo,

jo, hab' ich...

diese Zeile kommt in MEINEM Voschlag NICHT vor!

Versuch mal meinen Vorschlag umzusetzen
Titel: Re: Excel Arbeitsmappennamen auflisten
Beitrag von: Klingon 33 am November 24, 2010, 11:40:26
gleicher user gleiche Meldung.
Titel: Re: Excel Arbeitsmappennamen auflisten
Beitrag von: Klingon 33 am November 24, 2010, 11:42:25
 oWorkbook = Nothing
habe ich vergessen
Titel: Re: Excel Arbeitsmappennamen auflisten
Beitrag von: database am November 25, 2010, 08:17:41
Hallo, guten Morgen,

Dim ExcelApp As Excel.Application
Dim oWorkbook As Workbook

   Set ExcelApp = GetObject(, "Excel.Application")
       
       For Each oWorkbook In ExcelApp.Workbooks  
            Debug.Print oWorkbook.Name
       Next oWorkbook

Set ExcelApp = Nothing


mit obigem Code werden die geöffneten Excel-Arbeitsmappen aufgelistet. Du musst einen Verweis auf die Microsoft Excel xx.x Object Library setzen damit die Excel-Objekte auch angesprochen wserden können.
Kopier den Code ins Klickereignis eines Buttons und schau dir das Direktfenster an beim schrittweisen durchlaufen der Anweisungen.
Du solltest eine Fehlerbehandlung einbauen für den Fall, dass der Code gestartet wird und KEINE Excel-Dateien offen sind!

HTH
Peter
Titel: Re: Excel Arbeitsmappennamen auflisten
Beitrag von: Klingon 33 am November 25, 2010, 10:12:53
 :D SPITZE  ;D

Ich danke dir. Hat sehr gut funktioniert.

bis bald