Supportnet / Forum / Tabellenkalkulation
Automatische Pfadangabe in Workbooks.Open
Frage
Ich habe folgendes Problem.
Ich habe in einer Ordnerstrukur mehrfach die gleiche Exceltabelle (nur umbenannt), die jeweils eine andere Mappe mit Parametern öffnet.
Projekt1
_Parameter.xls
_|->Unterverzeichnis1
_|-> Unterverzeichnis2
___|-> Main_a.xls
___|-> Main_c.xls
Projekt2
_Parameter.xls
_|->Unterverzeichnis1
_|-> Unterverzeichnis2
___|-> Main_b.xls
Ich möchte dass die jeweils die richtige Parameter Datei geöfnnet wird.
Also muss ich irgendwie an den Pfad (-das letzte Unterverzeichnis) kommen.
Bsp: Main_a.xls
Pfad: ...Projekt1\Unterverzeichnis2\Main_a
irgendwie muss ich auf ...\Projekt1\Parameter.xls kommen.
Kann mir jemand weiterhelfen?
Bitte ganz genau erklären, ich bin absoluter VB Anfänger ;-)
Gruß
Heike
Antwort 1 von _heike_
So, ich weiß jetzt wie ich an den Pfad der Main Datei komme:
Mit Active.Workbook.Path
Aber irgendwie komm ich auch nicht weiter...
Gibt e seine Funktion, die nach einer bestimmten Datei erst im Verzeichnis, dann im Überverzeichnis usw sucht?
Oder gibts vielleicht sowas wie string Operationen?
Der erste Teil des Pfades ist ja fest.
Also vielleicht den bekannten Teil abschneiden (C:\....)
dann bleibt Projekt1\Unterverzeichnis2 übrig. Den Text bis zum ersten \ lesen und dann den Pfad wieder zusammenbauen.
"bekannter Pfad" + "gelesene" + Parameter.xls
Ich hoffe mir ist noch zu helfen ;-)
wünsch euch ein schönes We
Gruß Heike
Mit Active.Workbook.Path
Aber irgendwie komm ich auch nicht weiter...
Gibt e seine Funktion, die nach einer bestimmten Datei erst im Verzeichnis, dann im Überverzeichnis usw sucht?
Oder gibts vielleicht sowas wie string Operationen?
Der erste Teil des Pfades ist ja fest.
Also vielleicht den bekannten Teil abschneiden (C:\....)
dann bleibt Projekt1\Unterverzeichnis2 übrig. Den Text bis zum ersten \ lesen und dann den Pfad wieder zusammenbauen.
"bekannter Pfad" + "gelesene" + Parameter.xls
Ich hoffe mir ist noch zu helfen ;-)
wünsch euch ein schönes We
Gruß Heike
Antwort 2 von Marie
Wenn ich ja durchblicken würde was Du willst, dann wäre das gewiss kein Problem Dir zu helfen.
Gruß Marie
Gruß Marie
Antwort 3 von _heike_
Hab schon befürchtet, dass es ein bißchen unverständlich ist.
Ich hab hier eine Excelliste, die aus einer anderen Mappe Parameter holt. Diese Mappe wird mit Workbooks.Open am Anfang mitgeöffnet.
Das Problem ist jetzt, dass die Ecxelliste für verschiedene Projekte verwendet wird bei der sich die Parameter Datei ändert. Ich möchte den Pfad für die Parameterdatei also nicht fest angeben, sondern jeweils die richtige Parameterdatei öffnen (die sich in einem Überordner befindet).
Die Ordnerstrucktur, hab ich versucht darzustellen. Also
...\Projekt darunter kommt dann die für das Projekt gültige Parameterdatei und dann Unterordner mit den eigentlichen Excellisten.
Ich hoffe das ist verständlicher.
Gruß
Heike
Ich hab hier eine Excelliste, die aus einer anderen Mappe Parameter holt. Diese Mappe wird mit Workbooks.Open am Anfang mitgeöffnet.
Das Problem ist jetzt, dass die Ecxelliste für verschiedene Projekte verwendet wird bei der sich die Parameter Datei ändert. Ich möchte den Pfad für die Parameterdatei also nicht fest angeben, sondern jeweils die richtige Parameterdatei öffnen (die sich in einem Überordner befindet).
Die Ordnerstrucktur, hab ich versucht darzustellen. Also
...\Projekt darunter kommt dann die für das Projekt gültige Parameterdatei und dann Unterordner mit den eigentlichen Excellisten.
Ich hoffe das ist verständlicher.
Gruß
Heike
Antwort 4 von _heike_
So, ich hab ne Lösung die funktioniert.
Es geht sicher schöner, aber wie gesagt, das sind meine ersten Versuche ;-)
Also falls jemand nen bessern Vorschlag hat, freu ich mich natürlich.
Laenge = Len("D:\.....\Projekte\")
AktuellerPfad = ActiveWorkbook.Path
ProjektPfad = Mid(AktuellerPfad, Laenge + 1)
'nach \ weiter deshalb + 1
PosBS = InStr(ProjektPfad, "\")
'nächsten \ suchen
If PosBS > 1 Then
Projekt = Left(ProjektPfad, PosBS - 1)
'ohne \ deshalb - 1
Else
Projekt = ProjektPfad
End If
Workbooks.Open ("D:\.....\Projekte" & Projekt & "\Parameter.xls")
Gruß
Heike
Es geht sicher schöner, aber wie gesagt, das sind meine ersten Versuche ;-)
Also falls jemand nen bessern Vorschlag hat, freu ich mich natürlich.
Laenge = Len("D:\.....\Projekte\")
AktuellerPfad = ActiveWorkbook.Path
ProjektPfad = Mid(AktuellerPfad, Laenge + 1)
'nach \ weiter deshalb + 1
PosBS = InStr(ProjektPfad, "\")
'nächsten \ suchen
If PosBS > 1 Then
Projekt = Left(ProjektPfad, PosBS - 1)
'ohne \ deshalb - 1
Else
Projekt = ProjektPfad
End If
Workbooks.Open ("D:\.....\Projekte" & Projekt & "\Parameter.xls")
Gruß
Heike