csv-Importe, Fehlersuche
12.03.2019 08:00:38
EasyD
ich bräuchte mal den detektivischen Spürsinn der Profis:
Ich importiere 2 csv Dateien in eine Excel-Mappe. Die beiden Importe kommen auf 2 verschiedene Blätter Import und Import2.
Auf einem weiteren Blatt habe ich Berechnungen angestellt, welche mit diesen importierten Daten arbeiten sollen. Mit dem einen Blatt klappen die Formeln ohne Probleme, mit den Daten auf Import2 habe ich ein Problem, welches ich nicht nachvollziehen kann.
Sämtliche Formeln auf meinem Berechnungsblatt, die auf das Blatt Import2 zugreifen, werden mit jedem Import (der findet wiederholt statt) um jeweils 2 Spalten nach rechts verschoben. Die Importe sind aber natürlich immer an der gleichen Stelle.
Im Code des Blattes mit den Formeln mache ich - nix!
Auf dem Blatt stehen nur Formeln, sonst passiert da überhaupt nichts.
Die folgenden 2 Codes laufen in der Prozedur nacheinander ab:
Sub ZGAST_import()
'die letzten BEIDEN Importe löschen
Sheets("Import").Range("A:L").ClearContents
Sheets("Import2").Range("A:AH").ClearContents
'BPK
Sheets("Import").Activate
Dim sFile As String
'Prüfen, ob die Reihenfolge für den Import eingehalten wurde
If Range("A1").Value = "Erstellungsdatum" Then 'dieses Wort steht nur in der xxx-Liste in Zelle _
_
_
A1
MsgBox "Es handelt sich nicht um yyy-daten! Bitte die korrekte Reihenfolge für den Import _
_
_
beachten !" & vbCrLf & _
"Die Prozedur bitte nochmal neu starten!", vbOKOnly, "Fehler!"
End
Else
'Datei zum Import auswählen
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = ActiveWorkbook.Path & "\"
.Filters.Add "Textdateien", "*.csv", 1
.FilterIndex = 1
If .Show = -1 Then
sFile = .SelectedItems(1)
Else
'Abbrechen falls keine Datei ausgewählt
MsgBox "Keine daten zum Import ausgewählt! Datei wird geschlossen.", , " _
Abbruch"
ActiveWorkbook.Close savechanges:=False
Application.Quit
End If
End With
If sFile "" Then
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & sFile, destination:=Range("A1"))
.Name = "Importdatei"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 2, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
End If
End Sub
Sub ZGAST_import2()
'AAG
Dim sFile As String
Sheets("Import2").Activate
'Prüfen, ob die Reihenfolge für den Import eingehalten wurde
If Range("A1").Value = "Erstellungsdatum" Then 'dieses Wort steht nur in der xxx-Liste in Zelle _
_
_
A1
'Datei zum Import auswählen
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = ActiveWorkbook.Path & "\"
.Filters.Add "Textdateien", "*.csv", 1
.FilterIndex = 1
If .Show = -1 Then
sFile = .SelectedItems(1)
Else
'Abbrechen falls keine Datei ausgewählt
MsgBox "Keine Daten zum Import ausgewählt! Datei wird geschlossen.", , " _
Abbruch"
ActiveWorkbook.Close savechanges:=False
Application.Quit
End If
End With
If sFile "" Then
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & sFile, destination:=Range("A1"))
.Name = "Importdatei"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 2, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
Else
MsgBox "Es handelt sich nicht um xxx-daten! Bitte die korrekte Reihenfolge für den Import _
beachten!" & vbCrLf & _
"Die Prozedur bitte nochmal neu starten!", vbOKOnly, "Fehler!"
End
End If
End Sub
Kann da irgendjemand einen Fehler erkennen?
Auch nach diesen beiden Codes läuft in der Prozedur noch das ein oder andere ab, aber auch da kann ich beim besten Willen nicht erkennen, warum es mir die Formeln auf dem Berechnungsblatt zerkloppt. Mir wäre erstmal lieb zu wissen, dass in den beiden Codes oben nicht irgendein Problem drin ist....
Dank euch!