Hallo Karin,
vielen Dank für Deinen Lösungsvorschlag. Ich bin gerade dabei ihn auszuprobieren, habe aber noch Schwierigkeiten mit der Interpretation der Makroanweisungen, die ich ja an meine Verhältnisse anpassen muß.
Die Betragsdaten stehen ab Zeile 11 in den Spalten L (12) und M (13). Spalte N saldiert die Daten.
Ein weiteres Problem ist, ich weiß noch nicht die genaue Anzahl der Zeilen. Das Makro müßte also feststellen, wieviel Zeilen die Tabelle hat und dann bis zur letzten Zeile den Umwandlungsalgorythmus durchführen.
Entspricht die erste For Anweisung 1 To 20 der Annahme, daß es 20 Zeilen sind? das habe ich auf 11 To 50 (für den Test der ersten 50 Zeilen genommen).
Ich füge mal das auf meine Verhältnisse angepaßte Makro hier ein, um sicherzustellen, daß ich es richtig verstanden habe.
Sub Betragsfelderaufbereiten()
'
' Betragsfelderaufbereiten Makro
' In den Quelldaten steht bei negativen Betragsfeldern das Minuszeichen hinten d.h. rechts. Gültige Werte müssen das Minuszeichen jedoch vor der bzw. links der Zahl haben.
'
' Tastenkombination: Strg+Umschalt+A
'
Dim lngZeile As Long
For lngZeile = 11 To 48
If IsNumeric(Left(Cells(lngZeile, 12), 1)) Then 'Das verstehe ich nicht
Cells(lngZeile, 12) = Left(Cells(lngZeile, 12), 12) 'und das auch nicht
Else
Cells(lngZeile, 12) = ""
End If
' Zellinhalt Spalte L in Zahl umwandeln
If Cells(lngZeile, 12) <> 0 Then Cells(lngZeile, 12) = Cells(lngZeile, 12) * 1
Next lngZeile
End Sub
Der Testlauf brachte ein Spitzenergebnis. Gratuliere! Alles ist richtig. Nun muß ich das ganze auch für die nächste Spalte machen Hierzu werde ich nochmals den gleichen Algorithmus kopieren und einfügen und die 12 durch 13 ersetzen. Ok?
Ich wäre sehr dankbar, wenn meine Begriffsstutzigkeit großzügig übersehen werden würde und ich noch eine Erklärung der ersten IF Anweisung und ihrer Folgezeile bekäme.
Viele Grüße
Wönni