ich soll eine Excel-Datei so ändern, damit das Arbeiten einfacher und schneller wird.
Mit Hilfe des Internets, Kollegen und des Makrorecorders habe ich das auch geschafft, bis auf einen letzten Punkt und da erhoffe ich mir Hilfe von hier aus dem Forum.
Ich kann per VBA mehrere txt.-Dateien importieren. Funktioniert einwandfrei. Bloß leider kann es sein dass auch Dateien vorhanden sind, die ab Zeile 8 (ab da werden Daten importiert), nicht steht. Die Datei ist also leer. Trotzdem schreibt mir Excel für jede leere Datei eine leere Zeile. Das möchte ich verhindern, indem solche Dateien ignoriert werden.
Löschen der leeren Zellen funktioniert nicht, da Zellbezüge darauf sind.
Meine Frage: kann der vorhandene Code so abgeändert / erweitert werden, dass leere Dateien ignorirt werden?
Hier der Code:
Dim i As Long
Dim vFileToOpen As Variant
Dim lrow As Long
Dim SL As Object
Set SL = CreateObject("System.Collections.sortedlist")
ChDrive "G:"
ChDir "G:\Messdaten"
vFileToOpen = Application.GetOpenFilename("Text Files (*.txt*), *.txt", , , , True)
If Not IsArray(vFileToOpen) Then Exit Sub
For i = 1 To UBound(vFileToOpen)
SL(vFileToOpen(i)) = SL(vFileToOpen(i))
Next
For i = 1 To SL.Count
lrow = lrow + 1
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & SL.Getkey(i - 1), Destination:=Cells(lrow, 1))
.Name = SL.Getkey(i - 1)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 8
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
lrow = Cells(Rows.Count, 1).End(xlUp).Row
Next
Ich wäre überglücklich, falls es möglich wäre.
Danke im voraus
Andi