Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textbox mit Zahl in Prozent ....

Textbox mit Zahl in Prozent ....
21.09.2006 20:37:02
proxima05
Kann mir jemand sagen, wie der Code aussieht, damit in der Textbox Coupon bei der Eingabe von z.B. 4,5 aus diesen 4,50% gemacht werden .... ein %-Zeichen anhängen funktioniert nicht; da macht er 400,00% draus.

Private Sub Coupon_AfterUpdate()
Coupon = Format(Coupon, "#,##0.00")
End Sub

Wäre nett, wenn mir jemand einen Tipp geben könnte.
Die obige TB ist Teil eines UF, das aus mehreren TBen besteht. gibt es da eine Möglichkeit nur eine

Private Sub zu schreiben, in der dann in einem Rutsch die Formate für die einzelnen TBen festgelegt werden .... anstellte von einer 

Private Sub für jede Textbox.
Besten Dank
Proxima

		
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox mit Zahl in Prozent ....
21.09.2006 20:45:35
Mischa
hi,
wenn ich dich richtig verstehe willst du den eingegebenen string so verändern, dass er einfach ein % angehängt bekommt.
das geht so:
form1.textbox1.text = form1.textbox1.text & " %"
wenn du alle textboxen eines dialogfeldes ändern willst, dann kannste zB
mit einer for each - schleife alle controls des forms durchgehen und wenn es vom typ eine texbox ist, dann .... anweisungen ausführen.
Viel besser sind aber dazu klassenmodule geeignet, aber bei 'vba=nein' ist das nix.
mischa richter
www.xltreffen2006.de.vu
Anzeige
AW: Textbox mit Zahl in Prozent ....
21.09.2006 20:56:42
proxima05
Hallo Mischa, erstmal danke .... aber das scheint so nicht zu gehen.
Ich gebe eine Zahl ein (4,5) .... nach dem Sprung in die nächste Textbox soll aus diesen 4,5 die Zahl 4,50% gemacht werden. Die entsprechende Textbox heisst Coupon.
Form.Coupon.Text = Form.Coupon.Text & " %"
Das funzt so aber nicht, da springt gleich der Debugger an.
Anzeige
AW: Textbox mit Zahl in Prozent ....
21.09.2006 22:01:40
Peter
Hallo Proxima - ein richtiger Name wäre sicherlich allen Antworter lieber,
so könnte deine erste Frage beantwortet werden:

Private Sub Coupon_AfterUpdate()
Coupon = Format(Coupon / 100, "0.00 %")
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Textbox mit Zahl in Prozent ....
21.09.2006 22:21:28
proxima05
Hallo Peter,
Deine Lösung gefällt mir gut! ...... ich bin beim Googeln auch darauf gestoßen, dass man durch 100 dividieren muss, um eine Prozentzahl zu bekommen.
Was aber funktioniert (Mischa hat das schon gesagt) ist auf den Namen "Coupon" angewandt:

Private Sub Coupon_AfterUpdate()
Coupon.Text = Format(Coupon.Text, "0.00") & "%"
End Sub

Zwei Möglichkeiten, die man erstmal finden muss!
Besten Dank
Ralph
@Mischa ... das mit der For ... Each-Schleife bekomme ich auch noch hin! ;-)
Anzeige
AW: Textbox mit Zahl in Prozent ....
21.09.2006 22:35:28
Peter
Hallo Ralph,
würden deine TextBoxes noch TextBox1 - TextBox10 heißen, und alle sollten als Prozent formatiert werden, dann ginge es so:

Sub TextBoxes_formatieren()
Dim iIndx  As Integer
For iIndx = 1 To 10
Controls("TextBox" & iIndx).Text = _
Format(Controls("TextBox" & iIndx).Text, "0.00") & "%"
Next iIndx
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Textbox mit Zahl in Prozent ....
21.09.2006 22:54:56
proxima05
Peter, ich schaue mir das mal an .... besten Dank für den Tipp (ich habe da schon gleich ein Problem, da meine Textboxen verschiedene Namen haben .... da müsste ich dann über die Art des Steuerelements versuchen zu einer Lösung zukommen.
Gruß
Ralph
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Textbox mit Zahl in Prozent formatieren


Schritt-für-Schritt-Anleitung

Um eine Zahl in einer Textbox als Prozentwert darzustellen, kannst du folgenden VBA-Code verwenden. Dieser sorgt dafür, dass beim Verlassen der Textbox (z.B. nach dem Update) die Eingabe entsprechend formatiert wird.

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Wähle das entsprechende Formular aus, das die Textbox enthält.
  3. Füge den folgenden Code in das Codefenster des Formulars ein:
Private Sub Coupon_AfterUpdate()
    Coupon.Text = Format(Coupon.Text / 100, "0.00") & "%"
End Sub

Hierbei wird die eingegebene Zahl durch 100 geteilt und anschließend mit einem Prozentzeichen versehen.


Häufige Fehler und Lösungen

  • Fehler: Nach dem Update springt der Debugger an.

    • Lösung: Stelle sicher, dass die Textbox den richtigen Namen hat und dass der Code im richtigen Kontext (z.B. im entsprechenden Formular) ausgeführt wird.
  • Fehler: Es wird statt 4,5% eine Zahl wie 400,00% angezeigt.

    • Lösung: Verwende den Code wie oben beschrieben, um die Eingabe durch 100 zu teilen, bevor das Prozentzeichen angehängt wird.

Alternative Methoden

Wenn du mehrere Textboxen hast und alle in Prozent formatieren möchtest, kannst du eine Schleife verwenden:

Sub TextBoxes_formatieren()
    Dim iIndx As Integer
    For iIndx = 1 To 10
        Controls("TextBox" & iIndx).Text = Format(Controls("TextBox" & iIndx).Text / 100, "0.00") & "%"
    Next iIndx
End Sub

Diese Methode ermöglicht es dir, eine Anzahl an Textboxen (z.B. von TextBox1 bis TextBox10) in einem Rutsch zu formatieren.


Praktische Beispiele

Angenommen, du hast ein Formular mit mehreren Textboxen, die als Prozentwerte angezeigt werden sollen. Du kannst den oben genannten Code anpassen, um spezifische Textboxen zu formatieren:

Private Sub Form_Load()
    Dim tb As Control
    For Each tb In Me.Controls
        If TypeOf tb Is MSForms.TextBox Then
            tb.Text = Format(tb.Text / 100, "0.00") & "%"
        End If
    Next tb
End Sub

Dies hilft dir, die Anzahl in Prozent für alle Textboxen im Formular zu setzen.


Tipps für Profis

  • Wenn du mit vielen Textboxen arbeitest, überlege, ob du Klassenmodule verwenden kannst, um den Code zu organisieren. So behältst du die Übersichtlichkeit und Flexibilität.
  • Denke daran, dass VBA keine Typüberprüfung wie andere Programmiersprachen hat. Achte darauf, dass die Eingaben in den Textboxen tatsächlich Zahlen sind, um Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden?
Du kannst das KeyPress-Ereignis der Textbox verwenden, um sicherzustellen, dass nur numerische Eingaben erlaubt sind.

2. Was passiert, wenn ich eine andere Zahl eingebe?
Das Format wird immer angewendet, solange der Code richtig implementiert ist. Die Eingabe wird durch 100 geteilt, um die korrekte Darstellung in Prozent zu gewährleisten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige