Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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
Inhaltsverzeichnis

Relative Pfade beim Import externer Daten

Relative Pfade beim Import externer Daten
24.04.2009 11:26:53
Johannes
Hallo,
ich habe eine Excel Mappe mit mehren Tabellen in denen jeweils eine externe csv Datei referenziert wird. Diese Mappe soll für monatliche Auswertungen der csv Dateien benutzt werden und auch weitergegeben werden können. Der Ablauf soll so aussehen, dass jeden Monat eine neuer Satz csv Dateien generiert wird und zusammen mit der Excel Mappe in ein neues Verzeichnis kopiert wird, das dann an den entsprechenden Bearbeiter weitergegeben wird. Das Problem ist, das Excel sich scheinbar die absoluten Pfade zu den externen csv Dateien merkt, so dass diese Referenzen kaputt sind, sobald man das Verzeichnis an eine andere Stelle kopiert. Ich habe keine Möglichkeit gefunden dies auf relative Pfade umzustellen. Weis jemand eine Möglichkeit, wie ich den skizzierten Ablauf dennoch umsetzten kann?
Viele Grüße, Johannes E.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Relative Pfade beim Import externer Daten
24.04.2009 11:38:35
Tino
Hallo,
so.
Dim strPfad As String
strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
MsgBox strPfad


Gruß Tino

AW: Relative Pfade beim Import externer Daten
24.04.2009 11:55:55
Johannes
Hallo Tino,
danke für deine Antwort. Als Excel leihe, weis ich nicht was ich damit tun soll :-) Ich bräuchte ja dann wohl eine Funktion, die beim öffnen der Mappe die Pfade der Referenzen umsetzt, oder?
Gruß,
Johannes
Anzeige
AW: Relative Pfade beim Import externer Daten
24.04.2009 12:19:00
Tino
Hallo,
ich kenne Deinen Code nicht.
Dort wo Du jetzt sehr Wahrscheinlich einen festen Pfad eingetragen hast muss jetzt strPfad stehen.
Beispiel:
Vorher:

"C:\Ordner\MeineDatei.csv"


Nachher:


Dim strPfad As String
strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
strPfad & "MeineDatei.csv"


Gruß Tino

AW: Relative Pfade beim Import externer Daten
24.04.2009 12:26:21
Johannes
Hallo,
ich habe keinen Code. Ich habe die cvs Dateien per "externe Daten importieren" im Daten-Menü referenziert.
Gruß, Johannes
Anzeige
Frage mal offen...
24.04.2009 12:29:45
Tino
Hallo,
dann wirst Du wohl auf VBA umsteigen müssen,
mir ist keine Möglichkeit bekannt dies anders zu machen.
Ich lass die Frage mal offen.
Gruß Tino
AW: Frage mal offen...
24.04.2009 13:12:34
Johannes
Hallo Tino,
kein Problem, ich nehme auch wohl VBA, Hauptsache, das funktioniert. Kann ich denn mit VBA die existierenden Referenzen entsprechend umsetzen?
Viele Grüße, Johannes
AW: Frage mal offen...
24.04.2009 13:28:33
Tino
Hallo,
zeichne Dir das lesen mit dem Rekorder auf, im Code musst Du entsprechend die Sachen anpassen.
Oder hier im Archiv zum Thema lesen von csv- Dateien mal stöbern.
Gruß Tino
OT Frage mal offen...
24.04.2009 13:29:08
Reinhard
Hallo Johannes,
rechts oberhalb des Antwortfensters ist ein Kästchen "Frage noch offen", dies hat Tino angehakt gehabt, durch deine Antwort ohne das häkchen dort hast du das zunichts gemacht.
Ich habe es jetzt wieder gesetzt, du erkennst das am Sonderzeichen im Betreff und daß deine Beitragsfolge jetzt wieder unter "offene Fragen" zu finden ist.
Gruß
Reinhard
Anzeige
AW: OT Frage mal offen...
24.04.2009 15:21:29
Johannes
Hallo,
so hier meine Lösung für die Nachwelt:
Ich habe ein Macro an das Workbook_Open Event gehängt:

Private Sub Workbook_Open()
Dim strPfad As String
strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")
Dim sheet As Worksheet
Dim sArray() As String
Dim connection As String
For Each sheet In ActiveWorkbook.Worksheets
If sheet.QueryTables.Count > 0 Then
sArray = Split(sheet.QueryTables.Item(1).connection, "\")
connection = "TEXT;"
connection = connection + strPfad
connection = connection + sArray(UBound(sArray))
sheet.QueryTables.Item(1).connection = connection
End If
Next sheet
End Sub


Vielen dank für eure Hilfe,
Johannes

Anzeige

25 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige