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

TextBox in UF Währungsformat

Forumthread: TextBox in UF Währungsformat

TextBox in UF Währungsformat
30.01.2018 20:29:18
Peer
Hallo.
Ich habe in einem UserForm ein paar TextBoxen, die Werte aus Zellen einer Tabelle Parameter bekommen.
In den Zellen der Tabelle Parameter konnte ich die Währungsformate übergeben.
Aber andersherum funktioniert es (bis jetzt) nicht.
Mein Code ist z.Zt. sehr einfach gehalten ;-)
Option Explicit
Private Sub btn_OK_Click()
' schreibe Wert aus UF-Textbox in Zelle von Parameter-Tabelle (CCur() = Währungsformat  _
Zelle)
Sheets("Parameter").Range("C4").Value = CCur(Me.curr_FAE)
Sheets("Parameter").Range("D4").Value = CCur(Me.curr_Theorie)
Sheets("Parameter").Range("E4").Value = CCur(Me.curr_Praxis)
Sheets("Parameter").Range("F4").Value = CCur(Me.curr_Fahren)
Sheets("Parameter").Range("G4").Value = CCur(Me.curr_Sonst)
Sheets("Parameter").Range("H4").Value = CCur(Me.curr_PTZ1)
Sheets("Parameter").Range("I4").Value = CCur(Me.curr_PTZ2)
Sheets("Parameter").Range("J4").Value = CCur(Me.curr_081)
Sheets("Parameter").Range("K4").Value = CCur(Me.curr_091)
Unload Me
End Sub
Private Sub UserForm_Activate()
Me.curr_PTZ1 = Format(Me.curr_PTZ1, "#,##0.00")
' lese den Wert aus Tabelle Parameter Zelle im UF-Textbox
Me.curr_FAE.Text = Sheets("Parameter").Range("C4").Value
Me.curr_Theorie.Text = Sheets("Parameter").Range("D4").Value
Me.curr_Praxis.Text = Sheets("Parameter").Range("E4").Value
Me.curr_Fahren.Text = Sheets("Parameter").Range("F4").Value
Me.curr_Sonst.Text = Sheets("Parameter").Range("G4").Value
Me.curr_PTZ1.Text = Sheets("Parameter").Range("H4").Value
Me.curr_PTZ2.Text = Sheets("Parameter").Range("I4").Value
Me.curr_081.Text = Sheets("Parameter").Range("J4").Value
Me.curr_091.Text = Sheets("Parameter").Range("K4").Value
Me.lst_Verwendung.List = Sheets("Parameter").Range("Verwendung").Value
End Sub

Ich habe bis jetzt alles als Newbie probiert.
Ich glaube, man kann es mit Schleifen bestimmt einfacher machen. Aber da habe ich noch keine Ahnung, wie.
Es hat bestimmt jemand einen Tipp, was ich falsch mache bzw. vergessen habe.
LG
Peer
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox in UF Währungsformat
30.01.2018 20:48:30
Werner
Hallo Peer,
als Text übergeben:
Me.curr_FAE.Text = Sheets("Parameter").Range("C4").Text
Gruß Werner
AW: TextBox in UF Währungsformat
30.01.2018 20:48:43
Sepp
Hallo Peer,
nimm .Text statt .Value, dann steht das was du in der Zelle siehst in der Textbox.
Beim zurückschreiben musst du allerdings den Format-String vorher wieder entfernen.
Gruß Sepp

Anzeige
AW: TextBox in UF Währungsformat
30.01.2018 20:58:53
Peer
Danke Werner und Sepp.
Wie bzw was meinst du mit beim Zurückschreiben Format wieder entfernen?
LG
AW: TextBox in UF Währungsformat
30.01.2018 21:05:45
Werner
Hallo Peer,
eine Textbox enthält, wie der Name schon sagt Text. Beim Zurückschreiben in eine Zelle dann:
Sheets("Parameter").Range("C4") = CCur(Me.curr_FAE)
Ansonsten hast du z.B.: den Text: 125,25 € in der Zelle.
Gruß Werner
Anzeige
AW: TextBox in UF Währungsformat
30.01.2018 21:09:40
Peer
Hallo Werner.
Habe ich das nicht schon im ersten Teil meines Codes?
LG
Peer
;
Anzeige
Anzeige

Infobox / Tutorial

TextBox in UserForms für Währungsformat nutzen


Schritt-für-Schritt-Anleitung

Um eine TextBox in einem UserForm so zu gestalten, dass sie Währungsformate korrekt anzeigt und verarbeitet, kannst du folgende Schritte befolgen:

  1. UserForm Erstellen: Erstelle zunächst ein UserForm mit den notwendigen TextBoxen für die Währungswerte, z.B. curr_FAE, curr_Theorie, usw.

  2. Währungswerte aus Zellen lesen: Verwende die .Text-Eigenschaft, um die Werte aus den Zellen der Tabelle "Parameter" zu lesen:

    Me.curr_FAE.Text = Sheets("Parameter").Range("C4").Text
  3. Währungswerte in Zellen schreiben: Nutze die CCur() Funktion, um sicherzustellen, dass die Werte im Währungsformat in die Zellen zurückgeschrieben werden:

    Sheets("Parameter").Range("C4").Value = CCur(Me.curr_FAE.Text)
  4. Formatierungsstring entfernen: Stelle sicher, dass beim Zurückschreiben in die Zellen der Formatierungsstring entfernt wird, um Probleme mit dem Währungsformat zu vermeiden.

  5. UserForm aktivieren: Achte darauf, dass beim Aktivieren des UserForms die Werte korrekt angezeigt werden und dass das Format richtig eingestellt ist.


Häufige Fehler und Lösungen

  • Fehler: Falsches Format: Wenn du beim Zurückschreiben den Text direkt verwendest, könnte das Format nicht korrekt sein. Lösung: Verwende CCur(), um sicherzustellen, dass die Eingabe in ein Währungsformat umgewandelt wird.

  • Fehler: Text wird nicht angezeigt: Wenn die TextBox keinen Wert zeigt, prüfe, ob du .Text anstelle von .Value verwendest, um das angezeigte Format der Zelle zu übernehmen.


Alternative Methoden

Eine alternative Methode zur Handhabung von Währungsformaten in UserForms besteht darin, die Format()-Funktion zu verwenden, um die Werte in einem bestimmten Format darzustellen. Beispiel:

Me.curr_FAE.Text = Format(Sheets("Parameter").Range("C4").Value, "#,##0.00")

Praktische Beispiele

Hier sind einige einfache Code-Beispiele, die du in deinem UserForm verwenden kannst:

Private Sub btn_OK_Click()
    Sheets("Parameter").Range("C4").Value = CCur(Me.curr_FAE.Text)
End Sub

Private Sub UserForm_Activate()
    Me.curr_FAE.Text = Sheets("Parameter").Range("C4").Text
End Sub

Diese Beispiele zeigen, wie du die Werte zwischen den TextBoxen und den Zellen korrekt überträgst, während das Währungsformat beibehalten wird.


Tipps für Profis

  • Verwendung von Schleifen: Du kannst die Codezeilen für die Übertragung der Werte in Zellen vereinfachen, indem du eine Schleife verwendest. Dies reduziert den Code und macht ihn übersichtlicher:

    Dim i As Integer
    For i = 1 To 8
      Sheets("Parameter").Cells(4, i + 2).Value = CCur(Me.Controls("curr_" & i).Text)
    Next i
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass keine ungültigen Werte in die Zellen geschrieben werden, was zu Laufzeitfehlern führen kann.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen .Value und .Text in VBA?
.Value gibt den tatsächlichen Wert der Zelle zurück, während .Text den Wert so anzeigt, wie er im Excel-Fenster erscheint, einschließlich Formatierungen.

2. Wie kann ich sicherstellen, dass die Eingabe in der TextBox immer im Währungsformat ist?
Du kannst die Eingabe in der TextBox während der Eingabe formatieren, indem du die Format()-Funktion in der Change-Ereignisprozedur der TextBox verwendest.

3. Warum sollte ich CCur() verwenden?
CCur() konvertiert einen Wert in einen Währungswert, was sicherstellt, dass deine Berechnungen und Daten korrekt sind, insbesondere wenn es um Währungsbeträge geht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige