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

Pfadname: CStr mit * für variablen Teil eines Dateinamens

Forumthread: Pfadname: CStr mit * für variablen Teil eines Dateinamens

Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 11:08:37
Marcus Trommler
Hallo liebes Forum,

folgendes Problem:
ich habe in einem Makro einen Pfad bislang definiert, der auf eine Quell-Datei (im Code: quelldatei) zugreift, die teilweise einen variablen Namen hat:
Die Datei heisst vollständig: 155200_4003462147_28062024
Dabei ist alles, was nach 155200_ folgt variabel und verändert sich jedes Mal. Besonders der Mittelteil ist nicht systematisch sich ändernd.

Um das abzufangen, habe ich bislang mit der CStr Funktion beim Auslesen der Quelldatei aus einem Ordner auf einem Server gearbeitet. Jetzt liegt die Datei auf einem Sharepoint. Der Zugriff erfolgt auf den synchronisierten Ordner.
Ich habe sowohl den alten Codeteil für "quelldatei" als auch den neuen unten aufgelistet. Mit dem alten Code wird der volle Dateiname erkannt. Mit dem
neuen Code wird "...155200*.xls" erkannt, was dann zu einer Fehlermeldung führt:
Die Datei enthält vertrauliche Daten und ist mit diversen weiteren Makros versehen, weshalb ich nocht die ganze Datei hochladen kann, sondern den Code nachfolgend auszugsweise einfüge:
--------------------------------------------------------------------------------------------------------------------------------------------------------
Sub Zinsen_Kopie()

... *************** Teile des Codes überspringe ich, um zum Wesentlichen unten Überzuleiten)

' Es werden aus dem Inputdatum die drei Stellen für Tag, Monat und Jahr isoliert und der
' Variablen nam zugeordnet


nam = d & m & y ' Hilfsvariable für das Bilden eines datumsabhängigen Unterordners, aktuell 280624
Name = y & m & d ' Hilfsvariable für das Bilden eines datumsabhängigen Unterordners, aktuell 240628

***********************************************************************************************************************

'''''''''''''''''''''''''''''''''''''Neuer Pfadnamen für den geänderten Speicherort auf dem Sharepoint

User = GetUserName() ' Um mehreren Usern den Zugriff über die Sharepoint- Verknüpfung auf die Datei zu ermöglichen wird diese Function benötigt (ist für diesen Sachverhalt unerheblich)
pfad = "C:\Users\" & User & "\Risikocontrolling PKD & CTA - Dokumente\DT\Reports\" '''' Sharepoint Verknüpfung auf die Arbeitsdatei, in die die Daten der Quelldatei eingelesen werden sollen
aktuelle_datei = "C:\Users\" & User & "\Risikocontrolling PKD & CTA - Dokumente\DT\Reports\LZK PF Konstruktion_" & nam & ".xlsm"
LZK = "LZK PF Konstruktion_" & nam & ".xlsm"
''''''''Neuer Pfad zum Einlesen der Quelldatei über den Sharepoint Pfad. Hier funktioniert CStr leider nicht. Es wird ....155200*.xls erkannt, was dann zum Fehler führt: '''''''''''
quelldatei = "C:\Users\M11234\Risikocontrolling PKD & CTA - Dokumente\AGI-Dateien\" & Name & "\Fonds\Trust\" & CStr("155200") & "*" & ".xls"
''''''''''' dabei ist M11234 mein technischer Username siehe Variable "User". '''''''''''


''''''''''''''Ursprüngliche Pfadnamen, als die Datei noch auf dem X: Server lag. Das hat immer funktioniert mit "quelldatei" ''''''''''''''''''
'pfad = "X:\Risikomanagement\Tro\Trust\"
'aktuelle_datei = "X:\Risikomanagement\Tro\Trust\LZK PF Konstruktion_" & nam & ".xlsm" '
'LZK = "LZK PF Konstruktion_" & nam & ".xlsm"
quelldatei = "H:\MAL_HR\AV\Pool\Risikomanagement\Gab\Daten\" & Name & "\Fonds\Trust\" & CStr("155200") & "*" & ".xls"

------------------------------------------------------------------------------------------------------------------------

Könnt Ihr mir hier weiterhelfen? Vielen dank schon jetzt vorab. Trommy
Anzeige

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 12:01:16
Onur
"Hier funktioniert CStr leider nicht." ? Was genau hast DU denn dort erwartet? Was, glaubst du, macht CStr überhaupt?
Wieso eigentlicj XLS und nicht XLSX oder XLSM ?
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 15:13:26
Marcus Trommler
Hallo, als die Datei noch auf dem Server lag wurde der Pfad vollständig richtig ausgelesen:
H:\MAL_HR\AV\Pool\Risikomanagement\Gab\Daten\" & Name & "\Fonds\Trust\155200_4003462147_28062024.xls
Das erfolgte mit der oben erwähnten CStr("155200") & "*" & ".xls"-Lösung.

Auf dem durch Synchronisation erhaltenen Sharepoint Verzeichnispfad klappt das leider nicht, sondern es resultiert:
C:\Users\M11234\Risikocontrolling PKD & CTA - Dokumente\AGI-Dateien\" & Name & "\Fonds\Trust\155200*.xls

d.h. der Dateiname wird nicht richtig "erkannt". Ich hoffe das hilft Dir weiter
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 15:15:13
Onur
Nochmal: WIESO XLS ???
Hast du denn wirklich XLS-Dateien? Die gibt es seit 2006 nicht mehr.
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 12:19:07
Onur
Statt
quelldatei = "C:\Users\M11234\Risikocontrolling PKD & CTA - Dokumente\AGI-Dateien\" & Name & "\Fonds\Trust\" & CStr("155200") & "*" & ".xls"

Kannst du genauso gut auch
quelldatei = "C:\Users\M11234\Risikocontrolling PKD & CTA - Dokumente\AGI-Dateien\" & Name & "\Fonds\Trust\155200*.xlsx"' (oder .xlsm)

schreiben - CStr wird doch gar nicht benötigt.
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 15:26:28
Marcus Trommler
leider doch. Ansonsten kommt folgende Fehlermeldung beim Ausführen des Codes, wenn die Datei über den Pfad geöffnet werden soll:

Wir konnten Pfad...155200*.xls"> nicht finden. Wurde das Objekt vielleicht verschoben, umbenannt oder gelöscht?
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 15:29:15
Onur
Ist denn die Datei, die du öffnen willst, jetzt tatsächlich eine XLS-Datei oder eine XLSX bzw XLSM-Datei?
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 14:14:43
Der Steuerfuzzi
Hallo,

selten eine so unstrukturierte Frage gesehen. Zudem gibt es auch Code-Tags.

Es stellt sich die Frage, wo der Fehler angezeigt wird. Denn in den von Dir angegebene Code-Schnipseln kann der Fehler nicht auftreten, da Du hier nur die Variable füllst und der Code zu einer gültigen Zuweisung führt.

Ich vermute mal, der Fehler tritt beim öffnen der Datei auf. Allerdings fehlt sowohl der Code als auch die genaue Fehlermeldung ...

Kenn mich leider mit Sharepoint nicht wirklich aus, aber sollte der Pfad nicht eine Web-Adresse sein? Oder ist Sharepoint korrekt im Explorer als Laufwerk eingebunden und synchronisiert? Zugriff über Explorer ist also gegeben?

Grüße
Michael


Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 15:31:20
Marcus Trommler
Hallo, genau. Der Fehler tritt im Code auf, wenn mittels des Pfads bei "quelldatei" die definierte Datei 1552000 usw. geöffnet werden soll. Folgende Fehlermeldung tritt dann auf:

Wir konnten ...155200*.xls"> nicht finden. Wurde das Objekt vielleicht verschoben, umbenannt oder gelöscht? Wobei in > der vollständige "Pfad" hier abgekürzt ist.
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 15:34:38
Onur
Wie lautet denn eine der Dateien, die du öffnen willst (vollständig) ?
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 15:54:38
Der Steuerfuzzi
Kannst du auch die anderen Fragen beantworten? Sharepoint als Laufwerk eingebunden? Zugriff über den Explorer auf die Sharepoint-Freigabe ist möglich?

Öffne mal eine Datei von genau diesem Pfad und lasse Dir den Pfad der Datei mit Thisworkbook.path anzeigen. Was gibt VBA aus?
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 15:56:34
Onur
Ich hab schon etliche Male gefragt, ob die Datei WIRKLICH die Endung XLS hat, aber ich bekomme keine Antwort.
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 16:26:52
Marcus Trommler
sorry aber ich muss leider auch noch parallel arbeiten und kann daher nicht alle 5 Minuten in den Chat springen:
155200_4003462147_28062024.xls ist der volle Dateiname.

Die Datei erhalten wir von einem externen Anbieter, daher ist das Dateiformat gesetzt.
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 16:45:11
Marcus Trommler
155200_4003462147_28062024.xls ist der vollständige Dateiname (Datei kommt von Extern, daher ist das Format gesetzt).

Wie im ursprünglichen Thread geschrieben geht es darum, dass unsere Dateien künftig von einem Server auf einen Sharepoint umgezogen werden müssen.
Dieser Sharepoint wurde von mir synchronisiert, das man so wie mit Verzeichnissen mit den Dateien arbeiten kann. Eine Bearbeitung über den Browser auf dem Sharepoint ist keine Lösung. Bei uns läuft der synchronisierte Verzeichnispfad über das C-Laufwerk.

Beim Öffnen über den Code tritt die Fehlermeldung auf, also wenn die Codezeile erreicht wird:
Workbooks.Open Filename:=quelldatei (quelldatei hatte ich im Thread ja genant)

Wir konnten "C:\Users\M11\Evonik Industries AG\Risikocontrolling PKD & CTA - Dokumente\Pensionskasse\AGI-Dateien...155200*.xls"> nicht finden. Wurde das Objekt vielleicht verschoben, umbenannt oder gelöscht?

D.h. es wird - im Unterschied zum Pfad, als die Datei noch auf dem Server lag - nicht mehr der vollständige Dateiname erkannt, was dann zum genannten Fehler führt.
Das Makro habe ich bereits seit Jahren so im Einsatz. Es wurde lediglich der genannte Pfad (quelldatei) wie beschrieben angepasst. Und ich verstehe nicht weshalb es mit dem Sharepoint-Pfad nicht genauso ausgelesen werden kann wie mit dem Server-Pfad.
Ich hoffe, dass beatwortet Deine Fragen.
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 16:47:04
Onur
Habe dir eben erst geantwortet. Bitte lesen.
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 17:16:31
Marcus Trommler
Hallo Steuerfuzzi,

vielen Dank für Deine Geduld und Deinen Support.
Der User "Onur" hat mir gerade den entscheidenden Hinweis gegeben.

Damit ist mein Problem nun gelöst und ich brauche keine weitere Unterstützung mehr.
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 16:41:53
Onur
Du kannst keine Datei mit "*" öffnen.
Nur so geht sowas
Private Sub CommandButton1_Click()

Dim dateiname
dateiname = Dir("c:\Name*.xls")
If Not dateiname = "" Then
Workbooks.Open Filename:="A:\" & dateiname
Else
MsgBox "Datei nicht gefunden"
End If
End Sub
Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 17:13:55
Marcus Trommler
Hallo Onur, Dein letzter Hinweis trifft ins Schwarze!
Ich habe einfach folgendes gemacht:

quell_file = Dir("C:\Users\...\Fonds\Trust\" & CStr("155200") & "*" & ".xls")
quelldatei = "C:\Users\" & User & "\Evonik Industries AG\Risikocontrolling PKD & CTA - Dokumente\Pensionskasse\AGI-Dateien\" & Name & "\Fonds\Trust\" & quell_file

Damit klappt wiedr alles.
Vielen Dank für Deine Geduld und insbesondere für den Support!

Anzeige
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
08.07.2024 21:48:37
Oppawinni
Ich dachte mir zwar gleich, dass das sowas ist, aber wollte es nicht glauben. Ich bin immer wieder überrascht, was man so alles falsch machen kann ..
Irritiert hatte mich, dass ein alter Code funktioniert haben soll. Naja.. wieder einer zufrieden und gut.
AW: Pfadname: CStr mit * für variablen Teil eines Dateinamens
09.07.2024 10:33:56
Der Steuerfuzzi
Hallo Opawinni,

Workbooks.open funktioniert mW mit Wildcards ohne Probleme (auch wenn man das nicht machen sollte, um unvorhergesehenes Verhalten zu vermeiden). Ich vermute hier einen Zusammenhang mit dem Pfad zum gespiegelten Sharepoint-Ordner auf der lokalen Festplatte.

Grüße
Michael
Anzeige
Gerne !
08.07.2024 17:16:21
Onur
Gerne!
Hättest du meine Frage direkt beantwortet, wären wir schon seit Stunden fertig. :)
;
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige