VBA - Nur die 2. Zeile aus .csv importieren
#1
Hallo zusammen,

ich habe ein Makro, mit dem ich per Knopfdruck eine csv Datei auswählen kann, aus der dann ab Zeile 2 alle Daten unter bereits vorhandene Daten importiert werden. Eigentlich möchte ich aber, dass nicht alle Daten ab Zeile 2, sondern nur die Zeile 2 importiert wird. Lässt sich das per VBA irgendwie bewerkstelligen?

Hier mein bisheriger Code:



Zitat:Sub Y()
Dim EZeile As String
EZeile = ActiveSheet.Range("H1").Text  <<--- In Zeile H1 steht immer automatisch, wo die Daten eingefügt werden sollen
Dim varName As Variant
varName = Application.GetOpenFilename("Alle Dateien,*.*")
If varName = False Then Exit Sub

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & varName, Destination:=Range(EZeile))

.Name = "TEXT123"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertEntireRows
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = False
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 2
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 9, 9, 9, 1, 9, 1, 1, 1, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
        1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 _
        , 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
        9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 _
        , 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
        9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 _
        , 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, _
        9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 9, 9, 9, 9, 1, 9, 9, 1 _
        , 9, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
End With

Range(EZeile).Select

End Sub


Danke im Voraus!

Gruß
Top
#2
Hallo,

füge vor End With folgende Zeile ein:
      .ResultRange.Offset(1).Resize(.ResultRange.Rows.Count - 1).Delete xlUp
Gruß Uwe
Top
#3
Big Grin 
wahnsinn, vielen dank! funktioniert einwandfrei.  :21:
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste