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

Forumthread: Nullwerte in Userform Textbox ausblenden

Nullwerte in Userform Textbox ausblenden
Sascha
Hallo liebe Experten,
Ich habe eine Userform mit ca 20 Textboxen.
Im Tabellenblatt habe ich bei den Zellen die ausgelesen werden Formeln drin.
In der UF lese ich diese Zellen aus. Wenn nun die Formel in den Zellen 0 ergibt, zeigt es mir in der UF in den Textboxen auch 0 an.
Ich möchte gerne dass diese NULLEN in den Textboxen als "leer" angezeigt wird.
Im Tabellenblatt ist dies ja kein Problem. Habe in den Optionen den Haken bei "Nullwerte anzeigen" entfernt. Prima.
Ist dies aber auch per VBA in den Textboxen möglich?
Liebe Grüsse Sascha
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Nullwerte in Userform Textbox ausblenden
05.12.2011 18:05:00
Hajo_Zi
Hallo Sascha,
das geht nur über Prüfung des Zellinhaltes bzw. Textbox.

AW: Nullwerte in Userform Textbox ausblenden
05.12.2011 18:14:00
Sascha
Hallo Hajo,
Das hab ich mir schon gedacht.
Aber wie mache ich das?
Die Textboxen sind mit jeweils TB1 - TB51 beschriftet.
Gibt es einen Befehl in dem man sagt dass All diese TB`s die Nullwerte als "leer" darstellen sollen?
so werden Daten eingelesen:
Sub Fuellen(ByRef UF As UserForm, ByVal Nr As Integer, Optional bolNeu As Boolean, Optional Zei  _
As Integer)
'Daten einlesen
Dim Spa As Integer, Anz As Integer
Application.EnableEvents = False
With ActiveSheet
If bolNeu = False Then
Anz = .Cells(34, 1).End(xlUp).Row - 2         'Vorgesehen Daten ab Zeile 3, Zeile 34 muss  _
beschriftet sein
Nr = IIf(Anz = 0, 0, Nr)
UF.Links_Rechts.Max = Anz
If Anz > 0 Then
For Spa = 2 To 51                        'Lesen Vorgesehen bis Spalte 51
UF.Controls("TB" & Spa).Value = Format(.Cells(Nr + 2, Spa).Value, "###0. _
0")
Next Spa
End If
Else
For Spa = 2 To 28                        'einlesen vorgesehen bis Spalte 28, Spalte 1  _
bleibt erhalten
UF.Controls("TB" & Spa).Value = Format(.Cells(Zei, Spa).Value, "###0.0")
Next Spa
UF.Controls("TB1").Value = Date
If Range("C2") > "" Then                 'TB2 ergibt Fehler wenn Zelle C2 leer ist ( _
MSW5)
UF.Controls("TB3").SetFocus
End If
End If
End With
UF.TBDaten.Value = Nr & " / " & Anz
Application.EnableEvents = True
End Sub
LG Sascha
Anzeige
AW: Nullwerte in Userform Textbox ausblenden
05.12.2011 18:20:11
Hajo_Zi
Hallo Sascha,
Nein das mußt Du für jede einzelne prüfen.
Gruß Hajo
AW: Nullwerte in Userform Textbox ausblenden
05.12.2011 22:39:45
Gerd
Hallo Sascha,
guck mal, ob Du diese Zeile
UF.Controls("TB" & Spa).Value = Format(.Cells(Zei, Spa).Value, "###0.0")
durch diese ersetzen kannst
UF.Controls("TB" & Spa).Value = .Cells(Zei, Spa).Text
Gruß Gerd
Anzeige
AW: Nullwerte in Userform Textbox ausblenden
06.12.2011 17:06:07
Sascha
Hallo Gerd,
Perfekt... Das ist genau das wonach ich suchte... Vielen lieben Dank
Super Sache...
Liebe Grüsse
Sascha
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nullwerte in Userform Textboxen ausblenden


Schritt-für-Schritt-Anleitung

Um Nullwerte in einer Userform-Textbox auszublenden, kannst Du die folgende Vorgehensweise nutzen. Diese Anleitung setzt voraus, dass Du grundlegende Kenntnisse in VBA (Visual Basic for Applications) hast und eine Userform mit Textboxen erstellt hast.

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Wähle die Userform aus, in der Du die Textboxen hast.

  3. Füge den folgenden VBA-Code in das Modul der Userform ein:

    Sub Fuellen(ByRef UF As UserForm, ByVal Nr As Integer, Optional bolNeu As Boolean, Optional Zei As Integer)
       Dim Spa As Integer, Anz As Integer
       Application.EnableEvents = False
       With ActiveSheet
           If bolNeu = False Then
               Anz = .Cells(34, 1).End(xlUp).Row - 2
               Nr = IIf(Anz = 0, 0, Nr)
               UF.Links_Rechts.Max = Anz
               If Anz > 0 Then
                   For Spa = 2 To 51
                       If .Cells(Nr + 2, Spa).Value = 0 Then
                           UF.Controls("TB" & Spa).Value = ""
                       Else
                           UF.Controls("TB" & Spa).Value = Format(.Cells(Nr + 2, Spa).Value, "###0.0")
                       End If
                   Next Spa
               End If
           Else
               For Spa = 2 To 28
                   If .Cells(Zei, Spa).Value = 0 Then
                       UF.Controls("TB" & Spa).Value = ""
                   Else
                       UF.Controls("TB" & Spa).Value = Format(.Cells(Zei, Spa).Value, "###0.0")
                   End If
               Next Spa
               UF.Controls("TB1").Value = Date
           End If
       End With
       Application.EnableEvents = True
    End Sub
  4. Schließe den VBA-Editor und teste die Userform.


Häufige Fehler und Lösungen

  • Fehler: Textbox zeigt immer noch "0" an.

    • Lösung: Stelle sicher, dass die Bedingung in der Schleife korrekt gesetzt ist, um Nullwerte durch leere Strings zu ersetzen.
  • Fehler: Fehler beim Auslesen der Zellen.

    • Lösung: Überprüfe, ob die Referenzen zu den Zellen korrekt sind und ob die Zellen tatsächlich Werte haben.

Alternative Methoden

Eine alternative Methode besteht darin, die Textbox direkt mit dem Textwert der Zelle zu befüllen, anstatt den Wert zu formatieren. Du kannst den folgenden Code verwenden:

UF.Controls("TB" & Spa).Value = .Cells(Zei, Spa).Text

Diese Methode zeigt den Text in der Userform an und blendet Nullwerte automatisch aus.


Praktische Beispiele

Wenn Du beispielsweise eine Userform mit 20 Textboxen hast, kannst Du das folgende Beispiel verwenden, um die Nullwerte auszublenden:

For Spa = 2 To 21
    If .Cells(Zei, Spa).Value = 0 Then
        UF.Controls("TB" & Spa).Value = ""
    Else
        UF.Controls("TB" & Spa).Value = .Cells(Zei, Spa).Value
    End If
Next Spa

Hierbei wird für jede Textbox geprüft, ob die Zelle den Wert 0 hat und entsprechend ein leerer String zugewiesen.


Tipps für Profis

  • Überlege, ob es sinnvoll ist, die Formatierung der Zellen in Excel selbst vorzunehmen, um die Logik im VBA-Code zu vereinfachen.
  • Nutze die Möglichkeit, Fehlerbehandlungen in Deinen VBA-Code einzufügen, um Probleme während der Laufzeit besser zu diagnostizieren.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Textboxen dynamisch anpassen?
Du kannst die Schleife anpassen, um die Anzahl der Textboxen basierend auf den Daten in Deinem Arbeitsblatt zu steuern.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen. Achte jedoch darauf, dass Du die korrekten Referenzen verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige