Makrofehler - macht aus Komma einen Punkt!?

Hallo,
ich hab mir eine Makro Programmierung aus dem Netz geholt, die sagt, dass das Minuszeichen, was beim Importieren aus SAP leider hinter dem Wert steht, nach vorne holt. Nur leider macht diese Programmierung auch aus dem Komma (einer Dezimalzahl) einen Punkt und so entsteht ganz schnell aus -20,000 = -20.000 was natürlich fatal ist. Kann mir hier jemand helfen?
Programmiert hab ich:
Sub Minuszeichen_4()

’ Minuszeichen_4 Makro

Dim LoLetzte As Long
Dim LoI As Long

Dim ByI As Byte

For ByI = 16 To 16

LoLetzte = IIf(IsEmpty(Cells(65536, ByI)), Cells(65536, ByI).End(xlUp).Row, 65536)

For LoI = 1 To LoLetzte

If Trim(Right(Cells(LoI, ByI), 1)) = „-“ Then

Cells(LoI, ByI) = „-“ & Left(Trim(Cells(LoI, ByI)), Len(Trim(Cells(LoI, ByI))) - 1)

End If

Cells(LoI, ByI).HorizontalAlignment = xlRight

Next LoI

Next ByI

End Sub

Vielen Dank!

Hallo CocoW.

For ByI = 16 To 16

Diese Schleife macht meines Erachtens überhaupt keinen Sinn.

Cells(LoI, ByI) = „-“ & Left(Trim(Cells(LoI, ByI)), Len(Trim(Cells(LoI, ByI))) - 1)

Versuche bitte mal das Folgende:

Cells(LoI, ByI) = FormatNumber(CSng("-" & Left(Trim(Cells(LoI, ByI)), Len(Trim(Cells(LoI, ByI))) - 1)), VbUseDefault, VbUseDefault, VbUseDefault)

Keine Garantie, daß es funktioniert.

VG
Carsten

Moin, CocoW,

wahrscheinlich liegt das an Deinen Ländereinstellungen im Windows. Bei mir läuft das Makro ohne Murren, setzt das Vorzeichen nach vorne und lässt alle Punkte und Kommata so wie sie vorher waren.

Gruß Ralf

ps:

For ByI = 16 To 16

16 to 16?

Hallo Carsten,
danke für deinen Tip. Nur leider funktioniert das auch nicht. Ist ein fehler in deiner Zeile.

GRüße