AW: Excel_Makro_wieso overflow
09.12.2015 15:24:48
flo
Also es geht darum, dass das Makro eine ausgelesene unformatierte Textdatei schön formatieren soll.
Die Textdatei wird von SAP ausgespült.
Das Programm in SAP welches die Daten ausspült wurde vor kurzem auf UNICODE angepasst und seitdem kann das Excelmakro die erhaltene .txt datei nicht mehr richtig weiterverarbeiten und es stürzt ab.
Es kommt zu einem Laufzeitfehler 6, Überlauf.
Hier der komplette Code:
Sub Abgrenzung()
' Datei importieren
Workbooks.OpenText FileName:="C:\SAPWorkdir\abgrenzung.txt", Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)
Dim zeindex As Integer ' Zeilenzähler
Dim spindex As Integer ' Spaltenzähler
Dim wert As String
Dim datum As String
' Zellenformatierung
zeindex = 1
Do
If Worksheets("abgrenzung").Cells(zeindex, 1) = "102" Or Worksheets("abgrenzung").Cells(zeindex, _
1) = "101" Then
With Worksheets("abgrenzung").Cells(zeindex, 2)
datum = .Value
End With
End If
For spindex = 1 To 18
With Worksheets("abgrenzung").Cells(zeindex, spindex)
wert = .Value
If wert = "0" Or wert = "00.00.0000" Then .Value = Null 'ersetzen
End With
Next spindex
wert = Left(Worksheets("abgrenzung").Cells(zeindex, 3), 3)
If wert = "***" Then
Worksheets("abgrenzung").Rows(zeindex).Select
Selection.Font.Bold = True 'Zeile auf Fett stellen
Worksheets("abgrenzung").Rows(zeindex + 1).Select
Selection.Insert Shift:=xlDown 'Zeile einfügen
Selection.RowHeight = 9 'Zeilenhöhe auf 9 Punkt _
einstellen
End If
With Worksheets("abgrenzung").Cells(zeindex, 3)
wert = .Value
End With
zeindex = zeindex + 1
Loop While wert "********"
' Spaltenbreite def.
For spindex = 1 To 5
Worksheets("abgrenzung").Columns(spindex).Select
If spindex = 1 Then Selection.ColumnWidth = 5
If spindex = 2 Then Selection.ColumnWidth = 8.5
If spindex = 3 Then Selection.ColumnWidth = 7
If spindex = 4 Then Selection.ColumnWidth = 38
If spindex = 5 Then Selection.ColumnWidth = 15
Next spindex
' Zeile für Überschrift einfügen
Worksheets("abgrenzung").Rows(1).Select
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
'Selection.Insert Shift:=xlDown
' Überschriften Def.
Worksheets("abgrenzung").Cells(1, 1).Select
ActiveCell.FormulaR1C1 = "M. Kaindl Holzindustrie G&V per " & datum
Worksheets("abgrenzung").Cells(3, 1).Select
ActiveCell.FormulaR1C1 = "BUK"
Worksheets("abgrenzung").Cells(3, 2).Select
ActiveCell.FormulaR1C1 = "DATUM"
Worksheets("abgrenzung").Cells(3, 3).Select
ActiveCell.FormulaR1C1 = "KOA"
Worksheets("abgrenzung").Cells(3, 4).Select
ActiveCell.FormulaR1C1 = "BEZEICHNUNG"
Worksheets("abgrenzung").Cells(3, 5).Select
ActiveCell.FormulaR1C1 = "KST/KTR"
Worksheets("abgrenzung").Cells(3, 8).Select
ActiveCell.FormulaR1C1 = "PRA"
Worksheets("abgrenzung").Cells(3, 12).Select
ActiveCell.FormulaR1C1 = "SALDO"
Worksheets("abgrenzung").Cells(3, 14).Select
ActiveCell.FormulaR1C1 = "PLAN"
Worksheets("abgrenzung").Cells(3, 16).Select
ActiveCell.FormulaR1C1 = "Abw.zum"
Worksheets("abgrenzung").Cells(3, 17).Select
ActiveCell.FormulaR1C1 = "Abgrenzung"
Worksheets("abgrenzung").Cells(3, 18).Select
ActiveCell.FormulaR1C1 = "Abgrenzung"
Worksheets("abgrenzung").Cells(3, 19).Select
ActiveCell.FormulaR1C1 = "Saldo"
Worksheets("abgrenzung").Cells(3, 20).Select
ActiveCell.FormulaR1C1 = "Saldo"
Worksheets("abgrenzung").Cells(4, 8).Select
ActiveCell.FormulaR1C1 = "Vormonat"
Worksheets("abgrenzung").Cells(4, 12).Select
ActiveCell.FormulaR1C1 = "lt.Konto"
Worksheets("abgrenzung").Cells(4, 16).Select
ActiveCell.FormulaR1C1 = "PLAN"
Worksheets("abgrenzung").Cells(4, 17).Select
ActiveCell.FormulaR1C1 = "Menge"
Worksheets("abgrenzung").Cells(4, 18).Select
ActiveCell.FormulaR1C1 = "Wert"
Worksheets("abgrenzung").Cells(4, 19).Select
ActiveCell.FormulaR1C1 = "Ink.PRA"
Worksheets("abgrenzung").Cells(4, 20).Select
ActiveCell.FormulaR1C1 = "ink.PRA"
' Überschrift formatieren
Worksheets("abgrenzung").Rows("1:5").Select
Selection.Font.Bold = True
Worksheets("abgrenzung").Rows("1:1").Select
With Selection.Font
.Name = "Arial"
.Size = 20
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleSingle
.ColorIndex = xlAutomatic
End With
' Spalten ausblenden
Worksheets("abgrenzung").Columns(6).Hidden = True ' Spalte F
Worksheets("abgrenzung").Columns(7).Hidden = True ' Spalte G
Worksheets("abgrenzung").Columns(9).Hidden = True ' Spalte I
Worksheets("abgrenzung").Columns(10).Hidden = True ' Spalte J
Worksheets("abgrenzung").Columns(11).Hidden = True ' Spalte K
Worksheets("abgrenzung").Columns(13).Hidden = True ' Spalte M
Worksheets("abgrenzung").Columns(15).Hidden = True ' Spalte O
Worksheets("abgrenzung").Columns(17).Hidden = True ' Spalte Q
Worksheets("abgrenzung").Columns(19).Hidden = True ' Spalte S
Worksheets("abgrenzung").Columns(20).Hidden = True ' Spalte T
For spindex = 7 To 18
Worksheets("abgrenzung").Columns(spindex).Select
Selection.NumberFormat = "#,##0"
Next spindex
Worksheets("abgrenzung").Cells(1, 1).Select
Seite
End Sub
Sub Vorbereitung_SAP()
' Vorbereitung für übernahme ins SAP
' Makro am 26.05.99 von Werner Fröhlich aufgezeichnet
Worksheets("abgrenzung").Rows("1:6").Select
Selection.Delete Shift:=xlUp
Worksheets("abgrenzung").Columns(2).Select
Selection.NumberFormat = "yyyymmdd"
ChDir "C:\SAPWorkdir"
ActiveWorkbook.SaveAs FileName:="C:\SAPWorkdir\abgrenzung.txt", FileFormat _
:=xlText, CreateBackup:=False
End Sub