Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1100to1104
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
Inhaltsverzeichnis

zwei Kommastellen erzeugen

zwei Kommastellen erzeugen
Andreas
Hi Forum,
ich möchte in eine Zelle eine Zahl eingeben. Per VBA soll geprüft werden, ob Kommastellen existieren, und wenn nicht, sollen die letzten beiden Ziffern zu Nachkommastellen werden.
Beispiel 1: 12345 wird zu 123,45
Beispiel 2: 123,45 wird zu 123,45
Das soll nicht übers Zahlenformat geschehen, sondern wirklich. Ich muss mit der neuen Zahl weiterrechen.
Hab im Archiv immer nur Hinweise auf Zahlenformate gefunden.
Danke für Tipps... Andreas

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: zwei Kommastellen erzeugen
12.09.2009 09:22:41
Oberschlumpf
Hi Andreas
Versuch mal das hier (ungetestet)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If IsNumeric(Target.Value) Then
If Mid(Target.Value, Len(Target.Value) - 2, 1)  "," Then
Application.EnableEvents = False
Target.Value = Mid(Target.Value, 1, Len(Target.Value) - 2) & "," & Right(Target.Value,  _
2)
Target.Value = Target.Value * 1
Application.EnableEvents = True
End If
Else
MsgBox "Wert ist nicht numerisch"
End If
End If
End Sub

Hier wird auch geprüft, ob der eingegebene Wert numerisch ist.
Hilfts?
Ciao
Thorsten
Anzeige
Warum eigentlich nicht einfach: /100
12.09.2009 10:07:24
{Boris}
Hi Thorsten,
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count = 1 Then
If IsNumeric(.Value) Then
If .Value - Int(.Value) = 0 Then
Application.EnableEvents = False
.Value = .Value / 100
Application.EnableEvents = True
End If
End If
End If
End With
End Sub
Grüße Boris
AW: Warum eigentlich nicht einfach: /100
12.09.2009 10:12:25
Oberschlumpf
upppps :-)
Hi Boris
Jo...tschulligung...is noch..ähh...früh am MOrgen! :-)
Wo du Recht hast, hast du Recht...das Leben is schon kompli genug...man (ich) muss es nich noch schlimmer machen ;-)
Ciao
Thorsten
AW: Warum eigentlich nicht einfach: /100
12.09.2009 11:16:24
Andreas
Hi Boris,
funzt prima, ich brauche es allerdings nur in zwei Zellen, nicht auf dem gazen Blatt.
Hab schon versucht dein With Target gegen eine Target.Adress auszutauschen, bekomme aber nur Fehlermeldungen. Wie kann ich das machen?
Danke Dir... Andreas
Anzeige
AW: Guckt Dir hierzu meinen Senf an o.T
12.09.2009 11:19:46
Gerd
Gruß Gerd
gelöst... von Gerd
12.09.2009 11:19:22
Gerd
Hab Gerds Beitrag zu spät gelesen... da ist es gelöst. Danke!
vergessen
12.09.2009 09:23:25
Oberschlumpf
...der Code funzt nur mit mindestens dreistelligen Zahlen
AW: vergessen
12.09.2009 09:40:19
Andreas
Hi Thorsten,
danke erst mal so weit. Allerdings passiert bei mir erst mal gar nichts, wenn der Code ins Blatt eingefügt wird. Eingegebene Zahlen in A1 bleiben, wie sie sind.
Ist in der Zeile

Target.Value = Mid(Target.Value, 1, Len(Target.Value) - 2) & "," & Right(Target.Value,  _
2)

hinten wirklich ein Unterstrich und ein Zeilenumbruch vorgesehen? Allerdings helfen meine Änderungen da auch nicht wirklich.
Anzeige
AW: vergessen
12.09.2009 09:50:26
Oberschlumpf
Hi Andreas
Hier die Datei, mit der ich dann doch getestet habe:
https://www.herber.de/bbs/user/64348.xls
Funktioniert tadellos.
Hab noch den Zusatz eingebaut, nur prüfen, wenn Zelle A1 NICHT leer...da sonst Fehler.
Der Unterstrich + Zeilenumbruch ist nicht vorgesehen. Aber die Codezeile ist fürs Forum zu lang und wird von der Forumssoftware automatisch umgebrochen.
Hilfts nun?
Vergleich deinen Code (wo er steht usw) und den Code in meiner Datei.
Ciao
Thorsten
Danke
12.09.2009 09:57:08
Andreas
Hi Thorsten,
funktioniert perfekt... aber erst nach Excel-Neustart. Irgendwie hatte ich die Makrogeschichten wohl deaktiviert :-/
Gibt es noch eine Erweiterungsmöglichkeit für 1- und 2stellige Zahlen... vielleicht?.... bitte ;-)
Ansonsten trotzdem schon mal vielen Dank!
Andreas
Anzeige
vergessen
12.09.2009 09:45:55
Andreas
kann allerdigs auch ohne Konsequenzen nicht nummerische Werte eingeben... wird das Makro vielleicht gar nicht ausgeführt? Wie kann ich das prüfen?
AW: vergessen
12.09.2009 09:57:17
Oberschlumpf
funzt denn meine Datei?
Wenn nur deine Datei Probleme macht, dann ist wahrscheinlich die Ereignisverfolgung ausgeschaltet.
Irgendwann in deinem Code wird diese Zeile ausgeführt:
Application.EnableEvents = False
Du musst die Ereignisverfolgung auch wieder einschalten:
Application.EnableEvents = True

Wenn auch all das nix hilft, weiß ich leider nicth weiter, da ich n icht Excel 2007 benutze.
Ciao
Thorsten
Anzeige
AW: vergessen
12.09.2009 10:18:48
Gerd
Morgen Andreas!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Eingabebereich As Range
Set Eingabebereich = Range("a1:b20")
Application.EnableEvents = False
If Target.Count = 1 Then
If Not Intersect(Target, Eingabebereich) Is Nothing Then
If Application.WorksheetFunction.IsNumber(Target) Then
If Val(Target.Value) = Target.Value Then
Target.Value = Target.Value / 100
End If
End If
End If
End If
Application.EnableEvents = True
End Sub
Gruß Gerd
AW: vergessen
12.09.2009 11:18:30
Andreas
perfekt, danke!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige