AW: SAP-Tabellenkalkulation
20.10.2012 14:05:31
fcs
Hallo Maximilian,
es kann Probleme geben, wenn die Zahlen als Text in den Zellen stehen.
Das ist bei Exporten von Daten aus SAP in externe Datenformate manchmal(oft?, immer?) der Fall.
Unter VBA arbeitet Excel intern im wesentlichen mit den US-Einstellungen. Stehen Daten als Text in den Zellen mit "." als Trennzeichen, dann kommt es bei bestimmten Aktionen unter VBA leider zu automatischen Wertkonversionen wenn die Zelltexte in das Schema für die Darstellung von Zahlen im US-Format passen.
In allen positiven und negativen ganzen Zahlen von 1.000 bis 999.000 wird dann der deutsche 1000er-Punkt als Dezimalzeichen interpretiert.
Gegenmaßnahmen:
Diese sind jetzt etwas davon abhängig wie du die Daten aus dem Blatt mit den SAP-Daten in die andere Tabelle überträgst.
Wenn du immer die Werte einzelner Zellen überträgst, dann kannst du den Text der SAP-Zelle vor dem Einfügen in die Zielzelle in eine Zahl oder richtiges Excel-Datum konvertieren
Beispiel:
Sub aaTest()
Dim wksSAP As Worksheet, wksZiel As Worksheet, strText As String
Dim ZeileSAP As Long, ZeileZiel As Long, SpalteSAP As Long, SpalteZiel As Long
Dim varWert
Set wksSAP = ActiveSheet 'Worksheets("Tabelle1")
Set wksZiel = Worksheets(2)
wksZiel.Cells.ClearContents
ZeileZiel = 1
With wksSAP
For ZeileSAP = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
strText = .Cells(ZeileSAP, 2).Text
wksZiel.Cells(ZeileZiel, 1).Value = strText
strText = .Cells(ZeileSAP, 4).Text
If IsNumeric(strText) Then varWert = CDbl(strText) Else varWert = "'" & strText
wksZiel.Cells(ZeileZiel, 2).Value = varWert
strText = .Cells(ZeileSAP, 3)
If IsDate(strText) Then varWert = CDate(strText) Else varWert = "'" & strText
wksZiel.Cells(ZeileZiel, 3).Value = varWert
strText = .Cells(ZeileSAP, 7).Text
wksZiel.Cells(ZeileZiel, 4).Value = "'" & strText
ZeileZiel = ZeileZiel + 1
Next ZeileSAP
End With 'wksSAP
End Sub
Willst du großflächig zusammenhängende Zellbereiche übertragen, dann verwende Kopieren-Einfügen oder Kopieren-Einfgen nur Werte.
Falls die Daten als Text in der Tabelle stehen, dann hast du generell das Problem, das nicht alle Funktionen damit rechnen können. ggf. ist es sinnvoll, alle Daten in dem SAP-Blatt in Zahlen-/Datumswerte zu konvertieren, bevor du anfängst sie in andere Blätter zu übertragen.
Gruß
Franz