dr.cornwallis
Goto Top

Platzhalter für VBA Code

Hi zusammen,

viele von euch VBA Cracks werden jetzt bestimmt lachen aber ich schaffe es einfach nicht einen Platzhalter für einen Dateinamen im Code anzugeben(Code läuft in Access 2010).

strCurrentSheet = PATH & "\" & "Abfrage *" & ".xlsx"  

Es soll auf eine Datei mit dem Namen (zb.)"Abfrage 21.07.2015.xlsx" zeigen und dann in eine Access Tabelle importiert werden, die Datei wird aber nicht gefunden.

Der Pfad an sich stimmt soweit da es ohne Platzhalter funktioniert(Dateinamen direkt im Code angegeben).

Ich habe schon folgende Varianten probiert:

strCurrentSheet = PATH & "\" & "Abfrage " & “*“ & ".xlsx"
strCurrentSheet = PATH & "\" & "Abfrage " & “* .xlsx"
strCurrentSheet = PATH & "\" & "Abfrage " & “[*] .xlsx"
strCurrentSheet = PATH & "\" & “* .xlsx"
strCurrentSheet = PATH & "\Abfrage*" & ".xlsx"


alle ohne Erfolg...

Danke für eure Hilfe!

Content-ID: 300923

Url: https://administrator.de/forum/platzhalter-fuer-vba-code-300923.html

Ausgedruckt am: 19.04.2025 um 02:04 Uhr

114757
Lösung 114757 05.04.2016 aktualisiert um 14:21:40 Uhr
Goto Top
Moin,
es gibt keine Wildcard-Möglichkeit bei deinem Vorhaben. Wenn dann nur
d = "21.07.2015"  
strCurrentSheet = PATH & "\Abfrage " & d & ".xlsx"  
Anderenfalls musst du alle XLSX-Dateien in dem Verzeichnis durchlaufen und prüfen ob xlsx Files vorhanden sind.
Set fso = CreateObject("Scripting.FileSystemObject")  
for each file in fso.GetFolder(PATH).Files
    if LCase(fso.GetExtensionName(file.Name)) = "xlsx" then  
     ' .....mach hier was mit der Datei ...  
     msgbox file.Path
     Exit For
   End if
Next
Gruß jodel32
Dr.Cornwallis
Dr.Cornwallis 05.04.2016 um 14:10:04 Uhr
Goto Top
Moin,

ok danke, da hätte ich lange probieren können face-smile.
Jetzt habe ich ein anderes Problem...

Der Code soll die Excel in eine Access Tabelle importieren, leider passt mein Code jetzt dafür nicht mehr:
 For Each file In fso.GetFolder(PATH).Files
    If LCase(fso.GetExtensionName(file.Name)) = "xlsx" Then  
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, TABLENAME, strCurrentSheet, True
    End If
    Next

Was muss ich jetzt an Stelle von "strCurrentSheet" einfügen?


Vielen Dank für deine Hilfe


Gruß


Dr.
114757
Lösung 114757 05.04.2016 aktualisiert um 14:20:50 Uhr
Goto Top
Was muss ich jetzt an Stelle von "strCurrentSheet" einfügen?
Na
file.Path
face-smile
Siehe auch meine Zeile 5 im Beispiel ...
Dr.Cornwallis
Dr.Cornwallis 05.04.2016 um 14:23:05 Uhr
Goto Top
Jetzt läufts!


Besten Dank, hast mir eine Menge Nerven(und Kopfhaare) erspart! face-smile

Grüße

Dr.