Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
532to536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
532to536
532to536
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

wenn 9 am anfang, komma nach zwei stellen einf. ..

wenn 9 am anfang, komma nach zwei stellen einf. ..
16.12.2004 14:31:06
Robin
Hi,
zu erst einmal muss ich mich für den eher unklaren Betreff entschuldigen, aber da ist mir beim besten willen nichts besseres eingefallen.
Nun, ich brauche dringend Hilfe, dieses Excel macht mich noch zu schaffen. ;-)
Folgendes:
Ich habe einige Zellen mit Zahlen drin, dazu bräuchte ich ein Makro, welches zu erst, die Zellen in Text umwandelt (das schaff ich ja noch mit dem Makrorecorder :) ), dann alle Punkte entfernt (Schaff ich auch mit nem Makrorecorder, einfach Suchen nach "." - Ersetzen durch "").
Nun kommen die schwierigkeiten:
Es soll gleich im anschluss geprüft werden, ob die erste Ziffer eine 1 ist, oder etwas anderes. Wenn erste Ziffer 1 dann mache nach drei stellen ein Komma, wenn nicht (also irgendetwas anderes, egal ob 4, 8, 9 oder sonstwas) dann mache nach zwei Stellen ein Komma. Dann muss noch geprüft werden ob überall nach dem komma 3 stellen sind, wenn weniger als drei nach dem komma dann mit 0en auffüllen, wenn mehr als drei, alles wegschneiden was zu viel ist.
Komme da einfach nicht weiter, wäre super nett wenn mir jemand helfen könnte.
Vielen Dank!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn 9 am anfang, komma nach zwei stellen einf. ..
Harald
Hallo Robin,
das wäre eine Teillösung:

Function Umwandeln(x As Variant) As String
Dim tmp1 As String
Dim tmp2 As String
Dim i As Integer
tmp1 = x ' umwandeln in string
tmp2 = ""
For i = 1 To Len(tmp1) ' punkte entfernen
If Left(tmp1, 1) <> "." Then
tmp2 = tmp2 & Left(tmp1, 1)
End If
tmp1 = Right(tmp1, Len(tmp1) - 1)
Next
tmp1 = tmp2 & "000" 'sicher stelllen, dass immer mindestens 3 Nullen nach dem Komma sein werden
If Left(tmp1, 1) = "1" Then ' erste Ziffer = 1 ' Prüfen der ersten Stelle auf 1
tmp2 = Left(tmp1, 3) & "," & Right(tmp1, Len(tmp1) - 3)
If Len(tmp2) > 7 Then
tmp2 = Left(tmp2, 7)
End If
Else
tmp2 = Left(tmp1, 2) & "," & Right(tmp1, Len(tmp1) - 2)
If Len(tmp2) > 6 Then
tmp2 = Left(tmp2, 6)
End If
End If
Umwandeln = tmp2
End Function

Allerdings hast Du nicht spezifiziert, was passiert, wenn das ursprüngliche Feld weniger als 2 bzw. 3 Stellen enthält. Eine "1.0" wird momentan zu "100,00".
Gruß Harald
Anzeige
AW: wenn 9 am anfang, komma nach zwei stellen einf. ..
harry
hi,
markiere mal eine zelle und probier den code. wenns nach deinen wünschen klappt, dann einfach ein eine schleife einbauen.

Sub Makro3()
Dim anFang, rEst As String
If Left(ActiveCell, 1) = "1" Then
anFang = Left(ActiveCell, 3)
rEst = Mid(ActiveCell, 4, Len(ActiveCell) - 3)
If Len(rEst) = 0 Then
rEst = "000"
ElseIf Len(rEst) > 3 Then
rEst = Left(rEst, 3)
ElseIf Len(rEst) = 1 Then
rEst = rEst & "00"
ElseIf Len(rEst) = 2 Then
rEst = rEst & "0"
End If
ActiveCell.Value = anFang & "," & rEst
Else:
anFang = Left(ActiveCell, 2)
rEst = Mid(ActiveCell, 3, Len(ActiveCell) - 2)
If Len(rEst) = 0 Then
rEst = "000"
ElseIf Len(rEst) > 3 Then
rEst = Left(rEst, 3)
ElseIf Len(rEst) = 1 Then
rEst = rEst & "00"
ElseIf Len(rEst) = 2 Then
rEst = rEst & "0"
End If
ActiveCell.Value = anFang & "," & rEst
End If
End Sub

liebe grüße,
harry
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige