Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
380to384
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
380to384
380to384
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Relativer Dateipfad, aber wie?

Relativer Dateipfad, aber wie?
17.02.2004 13:51:16
Julia
hi,
ich möchte eine *.csv datei in die Excel tabelle einbinden. Das Problem ist nur das ich nicht weis wie ich die datei ohne eindeutigen pfad finden lassen kann.
also es soll kein c:123\testordner\datei.csv da stehen sondern sowas wie .\datei.csv
das will er aber nicht haben. Ich mache Makros zum ersten mal.
ausschnitt aus dem Quelltext:
ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\123\testordner\datei.csv", Destination:=Range("A1"))
.Name = "datei"

Danke für die Hilfe im vorraus.
Julia

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Relativer Dateipfad, aber wie?
17.02.2004 16:37:25
Nepumuk
Hallo Julia,
folgende Funktion dursucht die vorhandenen Datenträger nach der Datei. Du baust es am besten so ein:
ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Datei_Pfad_und_Name("datei.csv") , Destination:=Range("A1"))
Die Funktion:

Private Function Datei_Pfad_und_Name(strDateiname As String)
Dim myFileSystemObject As Object, myDrives As Object, myDrive As Object
Dim myFile As Object, lngIndex As Long
Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set myDrives = myFileSystemObject.Drives
For Each myDrive In myDrives
If myDrive.IsReady Then
With Application.FileSearch
.LookIn = myDrive.DriveLetter & ":\"
.Filename = strDateiname
.SearchSubFolders = True
.Execute
For lngIndex = 1 To .FoundFiles.Count
DoEvents
If myFileSystemObject.FileExists(.FoundFiles(lngIndex)) Then
Set myFile = myFileSystemObject.GetFile(.FoundFiles(lngIndex))
If UCase$(myFile.Name) = UCase$(strDateiname) Then
Datei_Pfad_und_Name = myFile.ParentFolder & "\" & strDateiname
Exit Function
End If
End If
Next
End With
End If
Next
End Function


und ein kleines Testprogramm:

Public Sub test()
MsgBox Datei_Pfad_und_Name("datei.csv")
End Sub


Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk
Anzeige
AW: Relativer Dateipfad, aber wie?
18.02.2004 10:33:00
Julia
funktioniert leider nicht,
ich bekomme immer einen syntax fehler..
wo genau muss ich den Quelltext denn einbinden?

Private Function Datei_Pfad_und_Name(strDateiname As String)
Dim myFileSystemObject As Object, myDrives As Object, myDrive As Object
Dim myFile As Object, lngIndex As Long
Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set myDrives = myFileSystemObject.Drives
For Each myDrive In myDrives
If myDrive.IsReady Then
With Application.FileSearch
.LookIn = myDrive.DriveLetter & ":\"
.Filename = strDateiname
.SearchSubFolders = True
.Execute
For lngIndex = 1 To .FoundFiles.Count
DoEvents
If myFileSystemObject.FileExists(.FoundFiles(lngIndex)) Then
Set myFile = myFileSystemObject.GetFile(.FoundFiles(lngIndex))
If UCase$(myFile.Name) = UCase$(strDateiname) Then
Datei_Pfad_und_Name = myFile.ParentFolder & "\" & strDateiname
Exit Function
End If
End If
Next
End With
End If
Next
End Function

Danke!
Gruß
Julia
Anzeige
AW: Relativer Dateipfad, aber wie?
18.02.2004 16:35:57
Nepumuk
Hallo Julia,
in das selbe Modul, in dem auch der andere Code steht. Oder du machst aus:
Private Function
eine
Public Function
Dann in ein normales Modul. Wenn du den Fehler nicht weg bekommst, dann lade mal die Datei auf den Server. Die Daten in der Datei kannst du getrost löschen. Die benötige ich dann nicht.
Gruß
Nepumuk
AW: Relativer Dateipfad, aber wie?
19.02.2004 08:55:23
Julia
also hier die datei, sind ja keine daten drin weil er sie von alleine reinläd.
Danke für die Hilfe.
Julia
AW: Relativer Dateipfad, aber wie?
19.02.2004 17:46:55
Nepumuk
Hallo Julia,
da fehlt irgendwie der Link auf deinen upload.
Gruß
Nepumuk
AW: Relativer Dateipfad, aber wie?
20.02.2004 08:52:39
Julia
das kann nicht sein, der läd die daten doch immer da rein.. wenn er fehlen würde, würde er ja nicht mehr zu gebrauchen sein, ich hab an der datei nichts verändert.
Julia
Anzeige
AW: sorry..das meintest du
20.02.2004 20:05:10
Nepumuk
Hallo Julia,
so sollte es funktionieren: https://www.herber.de/bbs/user/3837.xls
Ich habe das Auto_Open Makro in das Klassenmodul "DieseArbeitmappe" verfrachtet, da die Auto-Makros ein Auslaufmodell sind.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige