ich bin seit knapp einem Jahr fleißiger Mitleser hier im Forum und dankbar für all die hilfreichen Beiträge zu Problemen, die ich bisher ohne das Erstellen eines eigenen Threads lösen konnte.
Nun habe ich jedoch ein Problem, bei dem ich aktiv nach Hilfe fragen möchte.
Ich würde gerne über VBA eine XLSM-Datei öffnen, die einen speziellen Wert im Dateinamen hat. Hierzu gibt es im Archiv bereits einen Thread.
https://www.herber.de/forum/archiv/436to440/436312_Datei_mit_bestimmter_Zeichenfolge_im_Namen_oeffnen.html
Jedoch würde ich gerne nicht nach einem definierten Begriff suchen, wie bei dem Archiv-Eintrag, dieser soll aus einer Zelle ausgelesen werden.
Hintergrund: der Wert nach dem gesucht werden soll ändert sich wöchentlich.
Vll. ganz kurz zum allgemeinen Workflow:
Ich habe eine XLSM-Datei, die wöchentlich aktualisiert wird (Dateibezeichnung bspw. 20220418_dateinamen_KW16.xlsm)
Bei der Aktualisierung werden Werte aus der Datei der jeweiligen Vorwoche benötigt und kopiert um den Abgleich durchführen zu können).
Bisher löse ich dies über den Abgleich mit dem exakten Dateinamen der Datei aus der Vorwoche (20220411_datiename_KW15.xlsm)
Damit das alles funktioniert ist es jedoch wichtig, dass die Datei-Bezeichnungen immer eine 7-Tage Differenz aufweisen.
Mir wäre es deshalb lieber, wenn ich den Dateinamen trotzdem mit Datum versehen könnte, der Abgleich aber über die KW-Angabe stattfindet
hier der Code aus dem Archiv-Thread des Autors Thorsten
Private Sub CommandButton1_Click()
Dim lstrDatName As String
lstrDatName = Dir("DeinPfad" & "\" & "*0815*.xls")
If lstrDatName "" Then
Workbooks.Open "DeinPfad" & "\" & lstrDatName
lstrDatName = ""
Else
Msgbox "Datei nicht vorhanden"
Exit Sub
End If
End Sub
in meinem konkreten Fall habe ich dies umgebaut zu
Sub CommandButton1_Click()
Dim lstrDatName As String
lstrDatName = Dir("C:\Users\Hans\Desktop" & "\" & "*KW15*.xlsm") 'hier hätte ich anstatt des fixen Wertes "*KW15*" gerne eine Abfrage aus bspw. der Zelle A1
If lstrDatName "" Then
Workbooks.Open "C:\Users\Hans\Desktop" & "\" & lstrDatName
lstrDatName = ""
Else
MsgBox "Datei nicht vorhanden"
Exit Sub
End If
End Sub
Ist dies möglich? meine Versuche den Code dahingehend anzupassen, waren leider nicht erfolgreich.Vielen Dank vorab und euch allen eine schöne Woche
Hans