es geht wieder einmal um den Import von einer txt (csv) Datei. Mit Hilfe des Archivs und dem Internet habe ich nun folgendes Makro zusammen kopiert.
Sub TextImport()
Dim iRow As Integer, iCol As Integer
Dim sFile As String, sTxt As String
Dim varRetVal As Variant, strFileName As String
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path
varRetVal = Application.GetOpenFilename( _
FileFilter:="Text-Dateien (*.csv), *.csv", _
Title:="Daten aus Text-Datei importieren")
If varRetVal = False Then Exit Sub
sFile = varRetVal
If Dir(sFile) = "" Then
Beep
MsgBox "Datei wurde nicht gefunden!"
Exit Sub
End If
iRow = 1
iCol = 1
Close
Open sFile For Input As #1
Do Until EOF(1)
Line Input #1, sTxt
Do While InStr(sTxt, ";")
Cells(iRow, iCol).Value = Left(sTxt, InStr(sTxt, ";") - 1)
sTxt = Right(sTxt, Len(sTxt) - InStr(sTxt, ";"))
iCol = iCol + 1
Loop
Cells(iRow, iCol).Value = sTxt
iRow = iRow + 1
iCol = 1
Loop
Close
End Sub
Es funktioniert perfekt, aber trotzdem habe ich noch ein paar Fragen dazu.
Ist es möglich irgendwie zu sagen das es nur die Zeilen importiert die in der ersten "Spalte" eine Zahl haben und kann ich den import auf die ersten 3 "Spalten" begrenzen?
Meine Lösung wäre alles zu importieren und dann im Excel die unnötigen Spalten und Zeilen zu entfernen.
Aber kann man das nicht auch schon beim Import machen?
Ein anderes Problem was ich in diesem Zuammenhang noch habe ist, dass ich in der Vorlagendatei die erste Spalte von 0 bis 1000 durchnummeriert habe. Die Txt - Datei enthält in der ersten "Spalte" zwar Zahlen, aber es kann vorkommen das diese nicht ganz durchgehend sind, also 1,2,3,5,6,9,11.
Ist es möglich beim Import das gleiche Ziel wie bei einem Sverweis zu erreichen?
Also das quasi die Vorlagendatei mit den Daten des imports nur dort aufgefüllt werden, wo es informationen hat.
Würde micht freuen wenn jemand eine Idee hat.
Besten Dank im voraus.
Gruss Roger