Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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

Formatierung Textbox klappt nicht

Formatierung Textbox klappt nicht
15.03.2018 20:14:42
Daniel
Liebe Excel-Liebhaber
Ich kaue an folgendem Problem:
Ausgangslage und Problem
Eine UserForm("frmCostsPW") enth?lt eine Combobox("cboFare") und drei Textboxen("txtKm","txtTpD","txtDpM"), die auszuf?llen sind. Anhand der Eingaben sollen in zwei weiteren Textboxen("txtKmMonth","txtTotal") jeweils die Ergebnisse der Berechnung mit jedem Wechsel der Eingabe "live" angezeigt werden.
Leider ist die Ausgabe in txtTotal manchmal v?llig falsch und manchmal richtig, je nach ?nderungen an den vier Eingabe-Textboxen. Ich vermute, dass es sich um ein Formatierungsproblem der Textboxen handelt.
Funktionsweise der UserForm
F?r die UserForm verwende ich f?r jede der vier Eingabe-Textboxen ein Change-Ereignis, das dann automatisch die Ergebnisse in den Textboxen "txtKmMonth" und "txtTotal" anzeigt. Weiter verwende ich auch jeweils eine Exit-Prozedur, damit diese vier Textboxen auch wirklich ausgef?llt werden.
Hierzu im Auszug der Code:

Private Sub cboFare_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Hier muss der Nutzer den Kilometertarif eintragen
If IsNumeric(cboFare) Then
cboFare = Format(cboFare, "#,###.00")
Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
cboFare = ""
Cancel = True
End If
Sheets("RawData").Range("U1") = cboFare
cboFare = Format(cboFare, "#,###.00")
End Sub

Private Sub cboFare_Change()
'Berechnet das monatliche Kilometertotal und die monatlichen Kosten mit jeder ?nderung von _
cboFare
Sheets("RawData").Range("U1") = cboFare
cboFare = Format(cboFare, "#,###.00")
txtTotal = Sheets("RawData").Range("U6")
txtTotal = Format(txtTotal, "#,###.00")
End Sub

Private Sub txtKm_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Hier ist die Anzahl Kilometer pro Fahrt einzutragen
If IsNumeric(txtKm) Then
txtKm = Format(txtKm, "#,###.00")
Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
cboFare = ""
Cancel = True
End If
Sheets("RawData").Range("U2") = txtKm
txtKm = Format(txtKm, "#,###.00")
End Sub

Private Sub txtKm_Change()
'Berechnet das monatliche Kilometertotal und die monatlichen Kosten mit jeder ?nderung von _
txtKm
Sheets("RawData").Range("U2") = txtKm
txtKmMonth = Sheets("RawData").Range("U5")
txtKmMonth = Format(txtKmMonth, "#,###.00")
txtTotal = Sheets("RawData").Range("U6")
txtTotal = Format(txtTotal, "#,###.00")
End Sub

Private Sub cboTpD_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Hier ist die Anzahl Fahrten pro Tag einzutragen
If IsNumeric(cboTpD) Then
cboTpD = Format(cboTpD, "#,###")
Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
cboTpD = ""
Cancel = True
End If
Sheets("RawData").Range("U3") = cboTpD
cboTpD = Format(cboTpD, "#,###")
End Sub

Private Sub cboTpD_Change()
'Berechnet das monatliche Kilometertotal und die monatlichen Kosten mit jeder ?nderung von _
cboTpD
Sheets("RawData").Range("U3") = cboTpD
txtKmMonth = Sheets("RawData").Range("U5")
txtKmMonth = Format(txtKmMonth, "#,###.00")
txtTotal = Sheets("RawData").Range("U6")
txtTotal = Format(txtTotal, "#,###.00")
End Sub

Private Sub cboDpM_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Hier ist die Anzahl Tage pro Monat einzutragen, an denen gefahren wird
If IsNumeric(cboDpM) Then
cboDpM = Format(cboDpM, "#,###")
Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
cboFare = ""
Cancel = True
End If
Sheets("RawData").Range("U4") = cboDpM
cboDpM = Format(cboDpM, "#,###")
End Sub

Private Sub cboDpM_Change()
'Berechnet das monatliche Kilometertotal und die monatlichen Kosten mit jeder ?nderung von _
cboDpM
Sheets("RawData").Range("U4") = cboDpM
txtKmMonth = Sheets("RawData").Range("U5")
txtKmMonth = Format(txtKmMonth, "#,###.00")
txtTotal = Sheets("RawData").Range("U6")
txtTotal = Format(txtTotal, "#,###.00")
End Sub

Die eingegebenen Daten werden jeweils direkt in ein verstecktes Tabellenblatt eingespiesen, _ damit beim erneuten Start des Programmes die get?tigten Eingaben nach wie vor vorhanden sind. Hier der Code dazu:

Private Sub UserForm_Initialize()
'Funktion: Bef?llt frmCostsPW mit den bereits vorhandenen Daten
'Setzt Hintergrundfarbe ein
Dim ColorUHR As Long
ColorUHR = RGB(130, 175, 215)
frmCostsPW.BackColor = ColorUHR
'Bef?llt UserForm mit vorhandenen Daten aus RawData
With cboFare
.AddItem Sheets("RawData").Range("T1").Text
.AddItem Sheets("RawData").Range("T2").Text
.AddItem Sheets("RawData").Range("T3").Text
.AddItem Sheets("RawData").Range("T4").Text
.AddItem Sheets("RawData").Range("T5").Text
.AddItem Sheets("RawData").Range("T6").Text
.AddItem Sheets("RawData").Range("T7").Text
.AddItem Sheets("RawData").Range("T8").Text
.AddItem Sheets("RawData").Range("T9").Text
.AddItem Sheets("RawData").Range("T10").Text
End With
cboFare = Sheets("RawData").Range("U1")
txtKm = Sheets("RawData").Range("U2")
cboTpD = Sheets("RawData").Range("U3")
cboDpM = Sheets("RawData").Range("U4")
End Sub
Frage
Was l?uft bei der Formatierung der Textbox "txtTotal" falsch bzw. wo liegt mein Denkfehler? Ich komme einfach zu keiner L?sung!

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung Textbox klappt nicht
15.03.2018 20:38:26
Werner
Hallo Daniel,
entgegen deiner Kommentierung im Code, berechnet dein Code gar nichts. Die Berechnungen finden ja wohl im Blatt "RawData" statt. Dein Code schreibt lediglich Daten aus den Combo-/TextBoxen ins Blatt und liest von dort Daten wieder ein.
Beim Schreiben der Daten von deinen Combo-/TextBoxen hast du wohl etwas ?bersehen. Du schreibst Text in dein Blatt.
Beim Schreiben der Daten aus den Combo-/TextBoxen entweder so:
Sheets("RawData").Range("U1") = cboFare * 1
oder so:
Sheets("RawData").Range("U1") = CDbl(cboFare)
Ob deine Berechnungen im Blatt stimmen kannst nur du sagen.
Gru? Werner
Anzeige
AW: Formatierung Textbox klappt nicht
15.03.2018 21:01:28
Daniel
Hallo Werner
Danke f?r dein Antwort. Entschuldige, das habe ich ganz vergessen zu sagen. Genauso ist es, die Eingaben in den Textboxen werden in die Tabelle transferiert, dort findet die Berechnung f?r txtKmMonth und txtTotal statt und diese Werte sollen dann wieder in die Textboxen eingef?llt werden.
Was ich nicht verstehe (nehmen wir cboFare als Beispiel):
  • Durch die Anweisung cboFare = Format(cboFare, "#,###.00") stelle ich doch sicher, dass eben kein Text in der Tabelle landet, oder? Zudem sind auch die Zellen im Tabellenblatt("RawData") als Zahlen formatiert.

  • Die Berechnungen in der Tabelle sind einwandfrei, Probleme macht die ?bertragung des richtig berechneten Zahlenwertes f?r txtTotal in die Textbox txtTotal der UserForm

  • txtKmMonth funktioniert einwandfrei, nur txtTotal macht Probleme

  • Kannst du die Problematik so abstrakt nachvollziehen, oder soll ich eine Beispieldatei "nachbasteln" (die jetzige Arbeitsmappe ist extrem umfangreich und w?re nicht behilflich)
    Vielen Dank f?r deinen Input
    Anzeige
    AW: Formatierung Textbox klappt nicht
    15.03.2018 21:13:00
    Daniel
    Nachtrag:
    Das Problem ist wirklich die R?ck?bertragung des in Sheets("RawData").Range("U6") richtig berechneten Zahlenwertes in die Textbox txtTotal. Wenn ich z.B. im Code von cboFare die Zeile cboFare = Format(cboFare, "#,###.00") auskommentiere, stimmen die Zahlen, nur erscheint die Zahl dann z.B. als 317,75 und das Komma m?chte ich nicht.
    Das ist der Code:
    Private Sub cboFare_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'Hier muss der Nutzer den Kilometertarif eintragen
    If IsNumeric(cboFare) Then
    cboFare = Format(cboFare, "#,###.00")
    Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
    cboFare = ""
    Cancel = True
    End If
    Sheets("RawData").Range("U1") = CDbl(cboFare)
    'cboFare = Format(cboFare, "#,###.00")
    End Sub
    

    Wo liegt der Hund begraben?
    ����������������������������������������������������������������������������������������������������
    Anzeige
    AW: Formatierung Textbox klappt nicht
    15.03.2018 21:16:20
    Daniel
    Mist, ich bin im Codeblock "verrutscht". Es ist der folgende Codeblock und die ausgeklammerte Zeile txtTotal:
    Private Sub cboFare_Change()
    'Tr?gt das in Sheets("RawData") berechnete monatliche Kilometertotal und die monatlichen Kosten  _
    mit jeder ?nderung von cboFare ein
    Sheets("RawData").Range("U1") = cboFare
    cboFare = Format(cboFare, "#,###.00")
    txtTotal = Sheets("RawData").Range("U6")
    'txtTotal = Format(txtTotal, "#,###.00")
    End Sub
    

    �RawData").Range("U1") = CDbl(cboFare)
    'cboFare = Format(cboFare, "#,###.00")
    End Sub �
    AW: Formatierung Textbox klappt nicht
    15.03.2018 21:22:26
    Daniel
    Danke Werner, du hast mich auf die richtige Spur gebracht. Es war ein Denkfehler, nun klappt es. Herzlichen Dank!
    Anzeige
    Gerne u. Danke f?r die R?ckmeldung. o.w.T.
    16.03.2018 10:22:45
    Werner
    Formatierung Textbox klappt nicht
    15.03.2018 20:14:42
    Daniel
    Liebe Excel-Liebhaber
    Ich kaue an folgendem Problem:
    Ausgangslage und Problem
    Eine UserForm("frmCostsPW") enth?lt eine Combobox("cboFare") und drei Textboxen("txtKm","txtTpD","txtDpM"), die auszuf?llen sind. Anhand der Eingaben sollen in zwei weiteren Textboxen("txtKmMonth","txtTotal") jeweils die Ergebnisse der Berechnung mit jedem Wechsel der Eingabe "live" angezeigt werden.
    Leider ist die Ausgabe in txtTotal manchmal v?llig falsch und manchmal richtig, je nach ?nderungen an den vier Eingabe-Textboxen. Ich vermute, dass es sich um ein Formatierungsproblem der Textboxen handelt.
    Funktionsweise der UserForm
    F?r die UserForm verwende ich f?r jede der vier Eingabe-Textboxen ein Change-Ereignis, das dann automatisch die Ergebnisse in den Textboxen "txtKmMonth" und "txtTotal" anzeigt. Weiter verwende ich auch jeweils eine Exit-Prozedur, damit diese vier Textboxen auch wirklich ausgef?llt werden.
    Hierzu im Auszug der Code:
    
    Private Sub cboFare_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'Hier muss der Nutzer den Kilometertarif eintragen
    If IsNumeric(cboFare) Then
    cboFare = Format(cboFare, "#,###.00")
    Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
    cboFare = ""
    Cancel = True
    End If
    Sheets("RawData").Range("U1") = cboFare
    cboFare = Format(cboFare, "#,###.00")
    End Sub
    

    Private Sub cboFare_Change()
    'Berechnet das monatliche Kilometertotal und die monatlichen Kosten mit jeder ?nderung von _
    cboFare
    Sheets("RawData").Range("U1") = cboFare
    cboFare = Format(cboFare, "#,###.00")
    txtTotal = Sheets("RawData").Range("U6")
    txtTotal = Format(txtTotal, "#,###.00")
    End Sub

    Private Sub txtKm_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'Hier ist die Anzahl Kilometer pro Fahrt einzutragen
    If IsNumeric(txtKm) Then
    txtKm = Format(txtKm, "#,###.00")
    Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
    cboFare = ""
    Cancel = True
    End If
    Sheets("RawData").Range("U2") = txtKm
    txtKm = Format(txtKm, "#,###.00")
    End Sub

    Private Sub txtKm_Change()
    'Berechnet das monatliche Kilometertotal und die monatlichen Kosten mit jeder ?nderung von _
    txtKm
    Sheets("RawData").Range("U2") = txtKm
    txtKmMonth = Sheets("RawData").Range("U5")
    txtKmMonth = Format(txtKmMonth, "#,###.00")
    txtTotal = Sheets("RawData").Range("U6")
    txtTotal = Format(txtTotal, "#,###.00")
    End Sub

    Private Sub cboTpD_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'Hier ist die Anzahl Fahrten pro Tag einzutragen
    If IsNumeric(cboTpD) Then
    cboTpD = Format(cboTpD, "#,###")
    Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
    cboTpD = ""
    Cancel = True
    End If
    Sheets("RawData").Range("U3") = cboTpD
    cboTpD = Format(cboTpD, "#,###")
    End Sub

    Private Sub cboTpD_Change()
    'Berechnet das monatliche Kilometertotal und die monatlichen Kosten mit jeder ?nderung von _
    cboTpD
    Sheets("RawData").Range("U3") = cboTpD
    txtKmMonth = Sheets("RawData").Range("U5")
    txtKmMonth = Format(txtKmMonth, "#,###.00")
    txtTotal = Sheets("RawData").Range("U6")
    txtTotal = Format(txtTotal, "#,###.00")
    End Sub

    Private Sub cboDpM_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'Hier ist die Anzahl Tage pro Monat einzutragen, an denen gefahren wird
    If IsNumeric(cboDpM) Then
    cboDpM = Format(cboDpM, "#,###")
    Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
    cboFare = ""
    Cancel = True
    End If
    Sheets("RawData").Range("U4") = cboDpM
    cboDpM = Format(cboDpM, "#,###")
    End Sub

    Private Sub cboDpM_Change()
    'Berechnet das monatliche Kilometertotal und die monatlichen Kosten mit jeder ?nderung von _
    cboDpM
    Sheets("RawData").Range("U4") = cboDpM
    txtKmMonth = Sheets("RawData").Range("U5")
    txtKmMonth = Format(txtKmMonth, "#,###.00")
    txtTotal = Sheets("RawData").Range("U6")
    txtTotal = Format(txtTotal, "#,###.00")
    End Sub

    Die eingegebenen Daten werden jeweils direkt in ein verstecktes Tabellenblatt eingespiesen, _ damit beim erneuten Start des Programmes die get?tigten Eingaben nach wie vor vorhanden sind. Hier der Code dazu:
    
    Private Sub UserForm_Initialize()
    'Funktion: Bef?llt frmCostsPW mit den bereits vorhandenen Daten
    'Setzt Hintergrundfarbe ein
    Dim ColorUHR As Long
    ColorUHR = RGB(130, 175, 215)
    frmCostsPW.BackColor = ColorUHR
    'Bef?llt UserForm mit vorhandenen Daten aus RawData
    With cboFare
    .AddItem Sheets("RawData").Range("T1").Text
    .AddItem Sheets("RawData").Range("T2").Text
    .AddItem Sheets("RawData").Range("T3").Text
    .AddItem Sheets("RawData").Range("T4").Text
    .AddItem Sheets("RawData").Range("T5").Text
    .AddItem Sheets("RawData").Range("T6").Text
    .AddItem Sheets("RawData").Range("T7").Text
    .AddItem Sheets("RawData").Range("T8").Text
    .AddItem Sheets("RawData").Range("T9").Text
    .AddItem Sheets("RawData").Range("T10").Text
    End With
    cboFare = Sheets("RawData").Range("U1")
    txtKm = Sheets("RawData").Range("U2")
    cboTpD = Sheets("RawData").Range("U3")
    cboDpM = Sheets("RawData").Range("U4")
    End Sub
    
    Frage
    Was l?uft bei der Formatierung der Textbox "txtTotal" falsch bzw. wo liegt mein Denkfehler? Ich komme einfach zu keiner L?sung!
    Anzeige
    AW: Formatierung Textbox klappt nicht
    15.03.2018 20:38:26
    Werner
    Hallo Daniel,
    entgegen deiner Kommentierung im Code, berechnet dein Code gar nichts. Die Berechnungen finden ja wohl im Blatt "RawData" statt. Dein Code schreibt lediglich Daten aus den Combo-/TextBoxen ins Blatt und liest von dort Daten wieder ein.
    Beim Schreiben der Daten von deinen Combo-/TextBoxen hast du wohl etwas ?bersehen. Du schreibst Text in dein Blatt.
    Beim Schreiben der Daten aus den Combo-/TextBoxen entweder so:
    Sheets("RawData").Range("U1") = cboFare * 1
    
    oder so:
    Sheets("RawData").Range("U1") = CDbl(cboFare)
    
    Ob deine Berechnungen im Blatt stimmen kannst nur du sagen.
    Gru? Werner
    Anzeige
    AW: Formatierung Textbox klappt nicht
    15.03.2018 21:01:28
    Daniel
    Hallo Werner
    Danke f?r dein Antwort. Entschuldige, das habe ich ganz vergessen zu sagen. Genauso ist es, die Eingaben in den Textboxen werden in die Tabelle transferiert, dort findet die Berechnung f?r txtKmMonth und txtTotal statt und diese Werte sollen dann wieder in die Textboxen eingef?llt werden.
    Was ich nicht verstehe (nehmen wir cboFare als Beispiel):
  • Durch die Anweisung cboFare = Format(cboFare, "#,###.00") stelle ich doch sicher, dass eben kein Text in der Tabelle landet, oder? Zudem sind auch die Zellen im Tabellenblatt("RawData") als Zahlen formatiert.

  • Die Berechnungen in der Tabelle sind einwandfrei, Probleme macht die ?bertragung des richtig berechneten Zahlenwertes f?r txtTotal in die Textbox txtTotal der UserForm

  • txtKmMonth funktioniert einwandfrei, nur txtTotal macht Probleme

  • Kannst du die Problematik so abstrakt nachvollziehen, oder soll ich eine Beispieldatei "nachbasteln" (die jetzige Arbeitsmappe ist extrem umfangreich und w?re nicht behilflich)
    Vielen Dank f?r deinen Input
    Anzeige
    AW: Formatierung Textbox klappt nicht
    15.03.2018 21:13:00
    Daniel
    Nachtrag:
    Das Problem ist wirklich die R?ck?bertragung des in Sheets("RawData").Range("U6") richtig berechneten Zahlenwertes in die Textbox txtTotal. Wenn ich z.B. im Code von cboFare die Zeile cboFare = Format(cboFare, "#,###.00") auskommentiere, stimmen die Zahlen, nur erscheint die Zahl dann z.B. als 317,75 und das Komma m?chte ich nicht.
    Das ist der Code:
    Private Sub cboFare_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'Hier muss der Nutzer den Kilometertarif eintragen
    If IsNumeric(cboFare) Then
    cboFare = Format(cboFare, "#,###.00")
    Else: MsgBox "Bitte eine Auswahl treffen", vbInformation, "Warnhinweis"
    cboFare = ""
    Cancel = True
    End If
    Sheets("RawData").Range("U1") = CDbl(cboFare)
    'cboFare = Format(cboFare, "#,###.00")
    End Sub
    

    Wo liegt der Hund begraben?
    ����������������������������������������������������������������������������������������������������
    Anzeige
    AW: Formatierung Textbox klappt nicht
    15.03.2018 21:16:20
    Daniel
    Mist, ich bin im Codeblock "verrutscht". Es ist der folgende Codeblock und die ausgeklammerte Zeile txtTotal:
    Private Sub cboFare_Change()
    'Tr?gt das in Sheets("RawData") berechnete monatliche Kilometertotal und die monatlichen Kosten  _
    mit jeder ?nderung von cboFare ein
    Sheets("RawData").Range("U1") = cboFare
    cboFare = Format(cboFare, "#,###.00")
    txtTotal = Sheets("RawData").Range("U6")
    'txtTotal = Format(txtTotal, "#,###.00")
    End Sub
    

    �RawData").Range("U1") = CDbl(cboFare)
    'cboFare = Format(cboFare, "#,###.00")
    End Sub �
    AW: Formatierung Textbox klappt nicht
    15.03.2018 21:22:26
    Daniel
    Danke Werner, du hast mich auf die richtige Spur gebracht. Es war ein Denkfehler, nun klappt es. Herzlichen Dank!
    Anzeige
    Gerne u. Danke f?r die R?ckmeldung. o.w.T.
    16.03.2018 10:22:45
    Werner

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige