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

Feinjustierung Makro mit variablem Datenpfad

Feinjustierung Makro mit variablem Datenpfad
19.01.2020 13:12:34
Stefan
Moin,
da ich nicht weiterkomme, benötige ich bitte eure Hilfe. Ich benutze folgendes Makro zum Importieren:
Sub Import()
' Import Makro
Tabelle3.Activate
Dim SourcePath As String
Dim FFnr As Integer
Dim TxtZeile As String
Dim AnzZe As Long, AnzSp As Integer, i As Long
SourcePath = "S:\TestImport\99997.csv"
FFnr = FreeFile
Open SourcePath For Input As #FFnr
Do While Not EOF(FFnr)  'Zeilenzahl feststellen
Line Input #FFnr, TxtZeile
AnzZe = AnzZe + 1
Loop
Close #FFnr
FFnr = FreeFile
Open SourcePath For Input As #FFnr
ReDim aZeilen(AnzZe)
Do While Not EOF(FFnr)  'Zeilenzahl feststellen
For i = 1 To AnzZe
Line Input #FFnr, TxtZeile
If i = 1 Then AnzSp = UBound(Split(TxtZeile, ";")) + 1
Range(Cells(i, 1), Cells(i, AnzSp)) = Split(TxtZeile, ";")
Next i
Loop
Close #FFnr
Tabelle1.Activate
End Sub
Das funktioniert recht gut, was das Ergebnis angeht. D.h. die importierten Werte werden nur eingelesen und nicht verknüpft. Ich benötige nun eine Lösung, wie ich mit diesem Makro auf einen variablen Daten zugreifen kann, der im sheet1 in Zelle C21 steht.
Habe diverse Vorschläge aus dem Forum ausprobiert, bisher hat nichts geholfen.
Danke schon mal vorab, für eure Mühe
Stefan

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Feinjustierung Makro mit variablem Datenpfad
19.01.2020 13:18:23
Oberschlumpf
Hi Stefan,
was genau steht denn in C21 ?
(du musst es nicht verraten, aber cool wäre es schon :-/)
Ich vermute, in C21 steht der Pfad+Dateiname zur gewünschten CSV-Datei.
Dann so:
änder diese Zeile
SourcePath = "S:\TestImport\99997.csv"

um in
SourcePath = Sheets(1).Range("C21").Value

Hilfts?
Ciao
Thorsten
AW: Feinjustierung Makro mit variablem Datenpfad
19.01.2020 13:50:33
Stefan
Sorry, mangelnde Kommunikation...
es steht in sheet1 C21 nur der Datenpfad, der Dateiname soll variabel auswählbar sein aus diesem Datenpfad.
AW: Feinjustierung Makro mit variablem Datenpfad
19.01.2020 14:32:43
Oberschlumpf
dann hilft nur der Dateiauswahl-Dialog
ersetze
SourcePath = "S:\TestImport\99997.csv"

durch

With Sheets(1).Range("C21")
ChDrive Left(.Value,2)
ChDir .value
End With
SourcePath = Application.GetOpenFilename("CSV-Dateien (*.csv), *.csv")
If SourcePath = "Falsch" Then
MsgBox "Dateiauswahl wurde abgebrochen, Makro wird hier abgebrochen"
Exit Sub
End If

Wenn du nach Klick auf "Abbrechen" oder oben rechts aufs "X" nicht willst, dass der Code abbgebrochen wird, musst du zwischen If SourcePath = "Falsch" Then und End If anderen Code schreiben.
Hilfts?
Anzeige
AW: Feinjustierung Makro mit variablem Datenpfad
19.01.2020 14:37:16
Stefan
Perfekt, funktioniert genau wie gewünscht - vielen Dank und einen schönen Sonntag!
AW: Feinjustierung Makro mit variablem Datenpfad
19.01.2020 13:35:27
Regina
Hi Stefan,
meinst Du, dass der Dateiname der zu importierenden Datei in C21 steht? Oder was heißt
"auf einen variablen Daten zugreifen kann, der im sheet1 in Zelle C21 steht"?
Gruß
Regina
.... hätte mal aktualisieren sollen .... owT
19.01.2020 13:36:16
Regina
.... hätte mal aktualisieren sollen ....
AW: .... hätte mal aktualisieren sollen .... owT
19.01.2020 14:11:31
Stefan
ich hätte das ja auch gleich mit Schreiben können, also der Dateipfad soll in Sheets1.Range("C21") vorgegeben sein, der Dateiname ist variabel, der User soll da auswählen können, ist in jedem Fall aber immer *.csv

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige