Anzeige
Archiv - Navigation
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige