Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei öffnen mit VBA

Forumthread: Datei öffnen mit VBA

Datei öffnen mit VBA
01.12.2006 20:54:18
Helmut
Hallo Ihr Experten,
wir kann mir bitte bei folgender Aufgabenstellung helfen:
Ich möchte je nach Bedarf verschiedene Excel-Dateien mit VBA öffnen.
Der Dateiname ist aber variabel und besteht aus Kd-Nr. und Datum.
(z.B. D123456 - 11.11.06 oder D123456 - 01.12.06,
oder D456789 - 10.10.06 oder D456789 - 30.11.06)
Aus der aufzurufenden Datei steht aber nur die Kd-Nr. in einer Zelle,
das zusätzliche Datum als Bestandteil des Dateinamens ist nicht bekannt.
Wenn es zwei Dateien mit der gleichen Kd-Nr. - aber unterschiedlichem Datum im Dateinamen gibt, soll die zuletzt gespeicherte Datei geöffnet werden.
Vielen Dank für Eure Unterstützung.
Helmut
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen mit VBA
02.12.2006 10:08:31
Matthias
Hallo Helmut,
folgender Code:

Function NeuesteDatei(Nr As String) As String
Dim fn As String
Dim pfad As String, Muster As String
Dim Datum As Date, d2 As Date, tmp As String
Dim Datei As String
pfad = ThisWorkbook.Path 'bitte Anpassen!
Muster = pfad & "\" & Nr & " - *.xls"
d2 = CDate(1)
fn = Dir(Muster)
Do While fn <> ""
tmp = Mid(fn, Len(Nr) + 4)
Datum = CDate(Left(tmp, Len(tmp) - 4))
If Datum > d2 Then
d2 = Datum
Datei = fn
End If
fn = Dir()
Loop
NeuesteDatei = pfad & "\" & Datei
End Function
'Möglichkeit zur Verwendung der Funktion:
Sub test()
Dim Kunde As String, Dateiname As String
Kunde = "D124356"
Dateiname = NeuesteDatei(Kunde)
If Dateiname = "" Then
MsgBox "Keine Datei für " & Kunde & " gefunden!"
Exit Sub
End If
Workbooks.Open Filename:=Dateiname
End Sub

Voraussetzung ist, dass du den Verzeichnisnamen bei pfad = ... angepasst hast und dass die Dateien dieses Format haben:
Gruß Matthias
Anzeige
AW: Datei öffnen mit VBA
02.12.2006 11:20:26
fcs
Hallo Helmut,
kleine Variante mit etwas anderer Datei-Suchmethode
Gruss
Franz

Sub DateiNeuesteOeffnen()
'Öffnet bei Dateien mit Datum im Dateinamen, die Datei mit dem aktuellsten Datum
'Schema Dateiname
'D123456 - 11.11.06.xls
'D123456 - 01.12.06.xls
Dim KundenNr As String, Verzeichnis As String
Dim wksDaten As Worksheet
Dim Datei As Integer, i As Integer
Dim Datum As Date
'Tabelle mit KundenNr, Namen ggf. anpassen
Set wksDaten = ActiveWorkbook.Worksheets("Tabelle1")
KundenNr = wksDaten.Range("B3") 'Zelle mit KundenNr ggf. anpassen
'Verzeichnis in dem Kundendateien gespeichert sind.
'Unterverzeichnisse werden ebenfalls durchsucht.
Verzeichnis = wksDaten.Range("B4") ' Auslesen aus Zelle in Tabelle (flexibel)
'  Verzeichnis = "C:\Test\Daten" 'Fest im Code vorgegeben
With Application.FileSearch
.NewSearch
.LookIn = Verzeichnis
.FileName = KundenNr & " - *.xls"
.SearchSubFolders = True
.MatchTextExactly = True
If .Execute() > 0 Then
If .FoundFiles.Count = 1 Then
Workbooks.Open .FoundFiles(1)
Else
Datum = CDate(Mid(.FoundFiles(1), Len(.FoundFiles(1)) - 11, 8))
Datei = 1
For i = 2 To .FoundFiles.Count
If Datum < CDate(Mid(.FoundFiles(i), Len(.FoundFiles(i)) - 11, 8)) Then
Datum = CDate(Mid(.FoundFiles(i), Len(.FoundFiles(i)) - 11, 8))
Datei = i
End If
Next i
Workbooks.Open .FoundFiles(Datei)
End If
Else
MsgBox "Zu der KundenNr. " & KundenNr & " wurde keine Datei gefunden."
Exit Sub
End If
End With
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige