Überlauffehler 6
09.05.2023 08:57:23
bustue
Moin Moin Freunde,
bei folgendem VBA Code erhalte ich die Fehlermeldung Überlauf.
Ich muß mehr als 65536 Zeilen exportieren.
Der Code stammt von Ramses und funktioniert bisher tadellos.
Sub save5_as_CSV_Click()
'(C) by Ramses
'Exportiert einen ausgewählten Bereich in ein zu definierendes Textfile
Dim i As Integer, n As Integer, maxExpCol As Integer, QE As Integer
Dim StartRow As Integer, StartCol As Integer, selRow As Integer, selCol As Integer
Dim myC As Range
Dim expFolder As String, expFileName As String, strPfad As String
Dim myDiv As String, tmpExpText As String, expText As String
'Maximal zu exportierende Spalten
'Dieser Parameter ist anzupassen, um unterschiedliche Bereiche
'in ein einheitliches Exportformat zu bringen
maxExpCol = 2
'Default Pfad incl abschliessendem Backslash
expFolder = "Z:\Preise\OTTO\"
'Standard Name für TextExportFile inkl. aktuelles Datum
expFileName = "BFT_Preisupdate_" & Format(Date, "dd-mm-yyyy") & ".csv"
'************************************************
'Ab hier keine Änderungen mehr vornehmen
'Trennzeichen für das CSV-File
myDiv = ";"
If Selection.Columns.Count > maxExpCol Then
MsgBox "Maximal zu exportierende Spaltenzahl überschritten"
Exit Sub
End If
'Starbereich festlegen
StartRow = 1
lastRow = Range("A96050").End(xlUp).Row
'Scheifenparameter initialisieren
selRow = Selection.Rows.Count
selCol = Selection.Columns.Count
For i = StartRow To lastRow
tmpExpText = ""
'hier die zu exportierenden Spalten eintragen
For Each Spaltenarray In Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
StartCol = Range(Spaltenarray + "1").Column
tmpExpText = tmpExpText & Cells(i, StartCol).Text & myDiv
Next Spaltenarray
expText = expText & tmpExpText & vbCrLf
Next i
'Exportfile und Speicherpfad kontrollieren
expFileName = Application.GetSaveAsFilename(InitialFileName:=expFolder & expFileName, _
fileFilter:="CSV Files (*.csv), *.csv)", Title:="Exportpfad definieren")
If Dir(expFileName) > "" Then
QE = MsgBox("Sollen die Daten an die existierende Datei angehängt werden," & vbCrLf & _
"oder soll die Datei überschrieben werden ?" & vbCrLf & vbCrLf & _
"JA = Anhängen" & vbCrLf & "NEIN = Datei überschreiben" & vbCrLf & "ABBRECHEN = Abbrechen", _
vbYesNoCancel + vbCritical + vbDefaultButton1, "Exportverhalten definieren")
If QE = vbCancel Then Exit Sub
If QE = vbYes Then
'Daten anhängen
Open expFileName For Append As #1
Print #1, expText
Close #1
Else
'Daten überschreiben
Open expFileName For Output As #1
Print #1, expText
Close #1
End If
Else
'Daten erstmalig schreiben
Open expFileName For Output As #1
Print #1, expText
Close #1
End If
MsgBox "Daten exportiert"
End Sub
Woran muß was ändern, damit der Code auch für mehr als 65536 Zeilen funktioniert. Mit der Hilfe zu dem Fehlercode konnte ich leider nichts anfangen.
Mit freundlichen Grüßen
und herzlichen Dank im Voraus für Eure Hilfe,
Burghard