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

Fehler mit Label

Fehler mit Label
05.01.2024 19:23:22
kurt k
Guten Abend,
hallo, habe gerade einen Fehler festgestellt.
War so stolz, vielleicht kann mir jemand helfen.

Habe mir eine Userform erstellt, es läuft soweit alles aber wenn
ich in der Userform in der Textbox44 nur die Zahl mit entfernen lösche, wird in der
Tabelle #WERT angezeigt und diese Zeile wird makiert:
    Label92.Caption = Format(ActiveSheet.Range("K48"), ("#,##0.00"))        'gezahlte Abschläge Gesamt


In der Tabelle steht das Ergebnis aus Textbox4 und Textbox45.
Wenn ich in der Tabelle mit entfernen lösche wird die Zelle K48 normal angezeigt mit 0,00
Private Sub TextBox44_Exit(ByVal Cancel As MSForms.ReturnBoolean)

ActiveSheet.Range("i47") = Format(TextBox44, ("#,##0.00"))
TextBox44 = ActiveSheet.Range("i47") '1 Abschläge
Label91.Caption = Format(ActiveSheet.Range("K47"), ("#,##0.00")) '1. Abschläge summe
Label92.Caption = Format(ActiveSheet.Range("K48"), ("#,##0.00")) 'gezahlte Abschläge Gesamt

Label93.Caption = ActiveSheet.Range("j49") ' Text gezahlte oder Rückvergütung
Label94.Caption = Format(ActiveSheet.Range("K49"), ("#,##0.00")) 'gezahlte Abschläge Gesamt
End Sub


mfg kurt

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hi Kurt (D)eine Beispielmappe könnte Helfer beflügeln oT
05.01.2024 19:43:10
JoWE
AW: Hi Kurt (D)eine Beispielmappe könnte Helfer beflügeln oT
05.01.2024 22:12:06
Alwin Weisangler
Hallo kurt,
Textboxen geben Text aus auch wenn Zahlen drinstehen.
Um rechnen zu können müssen diese mit der Typkonvertierungsfunktion CDbl in Zahlen umgewandelt werden.
Wenn eine Textbox leer ist, entspricht das nicht der Zahl 0. Du musst um Fehler zu vermeiden in jeden Fall sicherstellen, dass es Zahlen sind und bleiben.
Der simpelste Weg ist, wenn du den Inhalt der Textbox löschst, eine 0 zurückgegeben wird.


Option Explicit

Private Sub TextBox4_Change()
rechnen
End Sub

Private Sub TextBox45_Change()
rechnen
End Sub

Private Sub rechnen()
If Not IsNumeric(TextBox4) Then TextBox4 = 0
If Not IsNumeric(TextBox45) Then TextBox45 = 0
ActiveSheet.Range("K47") = CDbl(TextBox4) + CDbl(TextBox45)
Label91.Caption = Format(CDbl(ActiveSheet.Range("K47")), "#,##0.00")
End Sub

Private Sub UserForm_Initialize()
Label91.Caption = Format(CDbl(ActiveSheet.Range("K47")), "#,##0.00")
End Sub

Wenn du keine Null in der Textbox haben willst, kann man das auch mit Variablen machen:


Option Explicit

Private Sub TextBox4_Change()
rechnen
End Sub

Private Sub TextBox45_Change()
rechnen
End Sub

Private Sub rechnen()
Dim Wert1, Wert2
If Not IsNumeric(TextBox4) Then
Wert1 = 0
Else
Wert1 = TextBox4
End If
If Not IsNumeric(TextBox45) Then
Wert2 = 0
Else
Wert2 = TextBox45
End If

If Not IsNumeric(TextBox45) Then Wert2 = 0
ActiveSheet.Range("K47") = CDbl(Wert1) + CDbl(Wert2)
Label91.Caption = Format(CDbl(ActiveSheet.Range("K47")), "#,##0.00")
End Sub

Private Sub UserForm_Initialize()
Label91.Caption = Format(CDbl(ActiveSheet.Range("K47")), "#,##0.00")
End Sub

Es gibt auch noch weitere Lösungswege diesbezüglich.

Gruß Uwe
Anzeige
AW: Hi Kurt (D)eine Beispielmappe könnte Helfer beflügeln oT
06.01.2024 01:47:47
Piet
Hallo

wenn ich eine TextBox leeren will, kann ich das statt mit 0 auch TextBox = Empty machen.
Wenn es danach Formeln gibt, die Probleme machen, kann man mit IF TextBox >"" Then > 0 arbeiten-

mfg Piet
Guten Morgen, eine Kleinigkeit noch
06.01.2024 10:33:54
kurt k
Guten Morgen Uwe,
herzlichen Dank.
Ich habe dies so reingesetzt:
Private Sub TextBox45_Change()

rechnen
End Sub

Private Sub rechnen()
Dim Wert1, Wert2
If Not IsNumeric(TextBox4) Then
Wert1 = 0
Else
' Wert1 = TextBox4
End If
If Not IsNumeric(TextBox45) Then
Wert2 = 0
Else
Wert2 = TextBox45
End If
If Not IsNumeric(TextBox45) Then Wert2 = 0
ActiveSheet.Range("j47") = CDbl(Wert1) + CDbl(Wert2)
Label91.Caption = Format(CDbl(ActiveSheet.Range("j47")), "#,##0.00")
End Sub


wenn ich jetzt die Textbox lösche, wird eine 0 in die Tabelle J47 geschrieben, das sollte NICHTS drin stehen.
Sonst aus meiner Sicht i.o. !

mfg kurt k
Anzeige
AW: Guten Morgen, eine Kleinigkeit noch
06.01.2024 10:48:55
Alwin Weisangler
Hallo kurt,
da du nicht schreibst, welche Textbox du meinst, dann entweder so:


If CDbl(Wert1) + CDbl(Wert2) > 0 Then
ActiveSheet.Range("J47") = CDbl(Wert1) + CDbl(Wert2)
Else
ActiveSheet.Range("J47") = ""
End If

oder so:


If CDbl(Wert2) > 0 Then
ActiveSheet.Range("J47") = CDbl(Wert1) + CDbl(Wert2)
Else
ActiveSheet.Range("J47") = ""
End If

Es erschließt sich mir jetzt auch nicht, welche Rolle TextBox4 noch spielt??

Gruß Uwe
Anzeige
AW: Guten Morgen, eine Kleinigkeit noch
06.01.2024 11:00:09
kurt k
Hallo Uwe,
wenn ich die Textbox45 mit entfernen lösche soll in der Tabelle J47 nichts drin stehen.

gruß kurt k
AW: Guten Morgen, eine Kleinigkeit noch
06.01.2024 11:06:38
Alwin Weisangler
ohne den Wert aus TextBox4 (Variable Wert1):



If CDbl(Wert2) > 0 Then
ActiveSheet.Range("J47") = CDbl(Wert2)
Else
ActiveSheet.Range("J47") = ""
End If


Gruß Uwe
AW: Guten Morgen, eine Kleinigkeit noch
06.01.2024 11:22:38
kurt k
Hallo Uwe,
erst mal danke für deine GEDULD !
Ich habe dies unter:
Private Sub UserForm_Initialize()

If TextBox45 > "" Then
Label91.Caption = Format(CDbl(ActiveSheet.Range("K47")), "#,##0.00")
Else
Label91.Caption = ActiveSheet.Range("K47")
End If

eingesetzt, so wird mir entsprechend ob Wert Zelle K47 drin steht oder nicht.

Allerdings komme ich mit dem Makro nicht so richtig zurecht.
Hier nochmal mein Orginal Makro:
Private Sub wwTextBox45_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If TextBox45.Value = "" Then
TextBox45.Value = ""
End If

ActiveSheet.Range("j47") = TextBox45
TextBox45 = ActiveSheet.Range("j47") '2 X Abschläge Monate
Label91.Caption = Format(ActiveSheet.Range("K47"), ("#,##0.00")) '2. Abschläge summe
Label92.Caption = Format(ActiveSheet.Range("K48"), ("#,##0.00")) 'gezahlte Abschläge Gesamt
Label93.Caption = ActiveSheet.Range("j49") ' Text gezahlte oder Rückvergütung
Label94.Caption = Format(ActiveSheet.Range("K49"), ("#,##0.00")) 'gezahlte Abschläge Gesamt
End Sub

Es geht also nur um Textbox45, wenn nichts drin steht, soll auch in J47 der Tabelle nichts drin stehen.

mfg kurt k
Anzeige
AW: Guten Morgen, eine Kleinigkeit noch
06.01.2024 12:17:39
Alwin Weisangler
Hallo kurt,

Wie heißt die TextBox genau?

entweder: wwTextBox45
oder: TextBox45
du siehst den Unterschied.
Oder handelt es sich um 2 TextBoxen also wwTextBox45 und TextBox45?
Die Frage deshalb, weil weiter unten die TextBox45 seinen Wert aus Zelle "K47" erhält.
Sollte es nicht helfen, lade eine Datei mit diesem Userform hoch.

Gruß Uwe
AW: Guten Morgen, eine Kleinigkeit noch
06.01.2024 12:28:00
Kurt k
Hallo Uwe,
Es ist nur TextBox45 die hatte ich nur
deaktiviert, weil ich dein Makro eingesetzt habe.

Mit freundlichen Grüßen Kurt k
AW: Guten Morgen, eine Kleinigkeit noch
06.01.2024 13:11:39
Alwin Weisangler
dann so:


Option Explicit

Private Sub TextBox45_Exit(ByVal Cancel As MSForms.ReturnBoolean) ' reagiert auf Verlassen der TextBox
If Not IsNumeric(TextBox45) Then
ActiveSheet.Range("J47") = ""
Else
ActiveSheet.Range("J47") = CDbl(TextBox45)
End If
Label91.Caption = Format(ActiveSheet.Range("K47"), "#,##0.00") '2. Abschläge summe
Label92.Caption = Format(ActiveSheet.Range("K48"), "#,##0.00") 'gezahlte Abschläge Gesamt
Label93.Caption = ActiveSheet.Range("J49") 'Text gezahlte oder Rückvergütung
Label94.Caption = Format(ActiveSheet.Range("K49"), "#,##0.00") 'gezahlte Abschläge Gesamt
End Sub

Private Sub UserForm_Initialize()
Label91.Caption = Format(ActiveSheet.Range("K47"), "#,##0.00") ' Beim Iitialisieren der Userform
Label92.Caption = Format(ActiveSheet.Range("K48"), "#,##0.00") ' wird der Wert der Zelle in das Label geladen
Label93.Caption = ActiveSheet.Range("J49")
Label94.Caption = Format(ActiveSheet.Range("K49"), "#,##0.00")
End Sub

https://www.herber.de/bbs/user/165919.xlsm
Gruß Uwe
Anzeige
Super Uwe es klappt jetzt Danke -)
06.01.2024 14:24:26
kurt k

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige