Mit VBA in Access die 'neueste' Excel-Datei öffnen

Hallo Leute!

Ich habe folgendes Problem und finde die Antwort nirgendswo =((

In einem Ordner (C:\Projekte) habe ich mehrere Dateien aus verschiedenen Formaten (*.pdf , *.ppt , *.doc, *.xls). Die Excel-dateien (*.xls) sind 3 und haben folgende Namen:

Kostenmatrix - 090501.xls
Kostenmatrix - 090603.xls
Kostenmatrix - 090807.xls

Der Name entspricht dem Monat (z.B. Kostenmatrix - 090807 bedeutet die Kostenmatrix für den 07. August 2009).

Nun möchte ich in einem Formular hinter einer ClickEreignis_Prozedur eines Buttons einen VBA-Code schreiben, der in diesem Verzeichnis die „neueste" Kostenmatrix öffnet.

Also, der VBA-Code soll sagen: Guck Dir in dem Verzeichnis C:\Projekte alle xls-Dateien, sortiere sie alphanummerisch absteigend und öffne die erste in der Liste (also in diesem Fall „Kostenmatrix – 090807.xls“).

Kann man bei VBA so was machen?

Ich stelle mir vor, man kann so was sagen wie:

Dim xlApp As Object, xlBook As Object, xlSheet As Object

Set xlApp = CreateObject(„Excel.Application“)
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("C:\Projekte\Erste in der alphanummerisch absteigende xls-Datei)
Set xlSheet = xlBook.Sheets(„Tabelle1“)

Ich freue mich auf jeden Vorschlag!

Schöne Grüsse,

Carlos

Hallo Carlos,

von welches Access-Version reden wir?

Kann man bei VBA so was machen?

ja

Ich stelle mir vor, man kann so was sagen wie:
Dim xlApp As Object, xlBook As Object, xlSheet As Object
Set xlApp = CreateObject(„Excel.Application“)
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("C:\Projekte\Erste in der
alphanummerisch absteigende xls-Datei)
Set xlSheet = xlBook.Sheets(„Tabelle1“)

tja, das ist Excelcode und soooo nicht in Access anwendbar.
Frage: soll nur die Datei geöffnet werden, oder sollen die Daten in Access verarbeitet/bearbeitet werden?

Schau dir schon mal die VBA-Funktionen DIR und SHELL an.
In der Hilfe findest du gute Beispiele. (je nach Access-Version)

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfang!

Vielen Dank für Deine Antwort! Zu deinen Fragen:

  • Ich benutze die Access-Version 2002.

  • Die Datei, die gewählt wird, soll geöffnet werden, und ein Wert (von dem Formular, in dem mich im Moment befinde) eingetragen. Also, die Prozedur endet mit:

Set xlSheet = xlBook.Sheets(„Tabelle1“)

’ Schreiben des Feldes „Umrechnungskurs“ nach Zelle C30 in Excel

xlSheet.Cells(30, 3) = Me!Umrechnungskurs

xlBook.Save
Set xlSheet = Nothing: Set xlBook = Nothing: Set xlApp = Nothing

End Sub

Schöne Grüsse aus Hamburg

Carlos

Hallo,

habe ich Dir nicht schon den Tipp mit dem Einlesen in ein Array (oder Collection oder Tabelle) und anschließendem Sortieren gegeben???

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz!

Du bist wie Gott…allgegenwärtig =)

Ich schon erzählt: Ich habe Deine Lösung umgesetzt und funktioniert alles underbar. Vielen Dank!

Gruß,

Carlos