Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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

Variabler Pfad statt konstant

Variabler Pfad statt konstant
14.09.2013 21:17:43
Thorsten_Z
Moin liebes Forum,
Mit folgendem Code (hier aus dem Forum) lese ich csv Dateien ein. Klappt auch alles super.
Ich habe versucht den Pfad Variabel zu machen, bin aber nicht erfolgreich gewesen.
Wie bringe ich dem Code bei, dass der Pfad variabel sein soll... und der Code natürlich weiterhin funktioniert :-)
Sub allecsv2()
Dim sFile As String, sDaten, arrDaten, arrTmp
Dim i As Integer, j As Integer
Dim Pfad As String
Dim zusatz As String
Pfad = ActiveWorkbook.Path & Application.PathSeparator
zusatz = "csvDienste"
Const sFolder As String = "C:\Temp\"
Const sDelim As String = ","
Const sFolder As String = Pfad & zusatz 'Mein Versuch!!!
sFile = Dir(sFolder & "*.csv")
Do While sFile  ""
Open sFolder & sFile For Input As #1
sDaten = Split(Input(LOF(1), 1), vbCrLf)
Close #1
arrTmp = Split(sDaten(0), sDelim)
ReDim arrDaten(1 To UBound(sDaten) + 1, 1 To UBound(arrTmp) + 1)
For i = 0 To UBound(sDaten)
arrTmp = Split(sDaten(i), sDelim)
For j = 0 To UBound(arrTmp)
arrDaten(i + 1, j + 1) = arrTmp(j)
Next
Next
Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(arrDaten), UBound(arrDaten, _
_
2)) = arrDaten
sFile = Dir
Loop
End Sub
Vielen dank schonmal fürs lesen
Gruß
Thorsten

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variabler Pfad statt konstant
14.09.2013 22:19:53
mumpel
Hallo!
Woher soll die Pfadangabe kommen? Aus einer Zelle? Oder möchtest Du den "Öffnen"-Dialog nutzen?
Gruß, René

AW: Variabler Pfad statt konstant
14.09.2013 22:47:24
Thorsten_Z
Hallo René,
Meine Pfadangabe ist diese :
...
Pfad = ActiveWorkbook.Path & Application.PathSeparator
zusatz = "csvDienste"
...
steht ganz oben im Code
Gruß
Thorsten

noch offen owt.
15.09.2013 10:43:04
Thorsten_Z

AW: noch offen owt.
15.09.2013 11:06:34
fcs
Hallo Thorsten,
deswegen kam von René ja auch die Rückfrage.
Wenn der Pfad variabel sein soll. Wie möchtest du den Pfad variabel machen?
1. Auswahl in einem Auswahldialogfenster bei jedem Start des Makros?
2. Durch Eingaben in eine oder mehrere Zellen des Tabellenblatts?
3. Oder soll das Makro das Verzeichnis der Datei auf andere Art ermittteln?
Gruß
Franz

Anzeige
AW: noch offen owt.
15.09.2013 11:27:12
Thorsten_Z
Hallo Franz,
weder 1. noch 2.
Möglichkeit 3. kommt meiner Vorstellung am nächsten.
Je nachdem wo die Exceldatei sich befindet (mit der ich die csv`s einlese), soll der entsprechende Pfad genommen werden.
Das wollte ich über: "Pfad = ActiveWorkbook.Path & Application.PathSeparator" ralisieren
Mit dem Zusatz "zusatz = "csvDienste" " , wo die ganzen csv`s drin sind. und dieser Ordner ist immer im gleichen Verzeichniss wie die Exceldatei.
Die Datei wird auf mehreren Rechnern verwendet und ich möchte nicht immer den Const cstrFolder As String anpassen müssen.
Statt dessen möchte ich, dass der Code über "Pfad und "zusatz" sich das Verzeichnis selber sucht.
So meine Idee. Aber Const cstrFolder As String = Pfad & zusatz funktioniert (natürlich) nicht.
Ich hoffe ich konnte mich klarer ausdrücken!
Danke nochmal für die Rückmeldung Franz. Ich dachte weil es schon im Code stand wäre klar was ich vorhabe... mal wieder falsch gedacht :-)
Gruß
Thorsten

Anzeige
Die Nadel im Heuhaufen...
15.09.2013 18:04:50
Thorsten_Z
...Habs jetzt doch hin bekommen. Bei meinen ganzen Versuchen haperte es am fehlenden "\" bei meiner Pfaddeklaration!!!!
Asche auf mein Haupt!!!!
Der Vollständigkeit halber nochmal der FUNKTIONIERENDE Code :-)
Sub allecsv2letzte()
Dim sFile As String, sDaten, arrDaten, arrTmp
Dim i As Integer, j As Integer
Dim Pfad As String
Dim zusatz As String
Dim alles As String
Pfad = ActiveWorkbook.Path & Application.PathSeparator
zusatz = "csvDienste\"
alles = Pfad & zusatz
Const sDelim As String = ""
sFile = Dir(alles & "*.csv")
Do While sFile  ""
Open alles & sFile For Input As #1
sDaten = Split(Input(LOF(1), 1), vbCrLf)
Close #1
arrTmp = Split(sDaten(0), sDelim)
ReDim arrDaten(1 To UBound(sDaten) + 1, 1 To UBound(arrTmp) + 1)
For i = 1 To UBound(sDaten)
arrTmp = Split(sDaten(i), sDelim)
For j = 0 To UBound(arrTmp)
arrDaten(i + 1, j + 1) = arrTmp(j)
Next
Next
Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(UBound(arrDaten), UBound(arrDaten, _
_
2)) = arrDaten
sFile = Dir
Loop
'jetzt käme Dateien löschen
'strVerz = Pfad & zusatz
' Kill strVerz & "\*.csv"
End Sub

Guten Restsonntag an alle
Besten Gruß
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige