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

Forumthread: VBA Textbox unsichtbar

VBA Textbox unsichtbar
14.01.2020 20:34:16
MarC
Hallo alle,
ich Sitz am Schlauch. Wenn ich meinen Button betätige soll sich ein UserForm öffnen und die Textbox1 ausgeblendet werden wenn sie leer ist. Ich dachte es geht damit:
Private Sub TextBox3_Change()
If TextBox3.Visible = "" Then
TextBox3.Visible = False
End If
End Sub
Aber irgendwie mag die nicht so recht.
Des Weiteren würde ich gerne die ausgeblendete Textbox per Button wieder einblenden wenn ich sie brauchen sollte und befüllen möchte. Das hätte ich mit dem gleichen Code gemacht nur als Ergebnis True. Aber das kann ich nicht testen wenn ich sie nicht mal unsichtbar bekomme^^
Was ich noch gerne wissen würde ob es möglich wäre dass das UserForm seine Größe anpasst je nachdem ob die Textbox ein oder ausgeblendet ist. Geht so was?
Gruß Marc
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Textbox unsichtbar
14.01.2020 20:53:38
Hajo_Zi
Hallo Marc,
benutze das Activate Ereignis der Userform nicht das Eingabe der Textbox.

AW: VBA Textbox unsichtbar
15.01.2020 08:06:05
MarC
Danke Hajo und Onur, ich denke ich habs. Ich möchte ja das z.B. die TextBox3 im UserForm ausgeblendet wird wenn die Zelle 10, 8 leer ist. Wenn die Zelle nicht leer ist soll die Textbox mit dem Text eingeblendet werden. Mit dem Code funktioniert es. Ich hoffe dass das kein Zufall ist.
Private Sub UserForm_Initialize()
TextBox3 = Worksheets(C_mstrDatenblatt).Cells(10, 8)
If Me.TextBox3.Value = "" Then
Me.TextBox3.Visible = False
End If
End Sub
Was ich jetzt aber noch nicht herausgefunden habe ist. Wenn die Textbox ausgeblendet wird möchte ich das sich die Höhe des UserForm um die Höhe der ausgeblendeten Textbox reduziert. Wie kann ich denn das bewerkstelligen?
Anzeige
AW: VBA Textbox unsichtbar
15.01.2020 10:38:24
Daniel
HI
Me.Height = Me.Height - Me.Textbox3.Height
Gruß Daniel
Danke für eure Hilfe
16.01.2020 08:15:15
MarC
Danke für deine Hilfe Daniel. Deine Tipps und Lösungen haben diese und viele weitere Fragen beantwortet =)
AW: VBA Textbox unsichtbar
14.01.2020 21:06:19
onur
"Aber das kann ich nicht testen wenn ich sie nicht mal unsichtbar bekomme", kein Wunder,
TextBox3.Visible = False

oder
TextBox3.Visible = True

aber NIE
TextBox3.Visible = ""
.
Abgesehen davon: Wie willst du denn je wieder was hineinschreiben, wenn sie versteckt ist?
Anzeige
AW: VBA Textbox unsichtbar
15.01.2020 07:55:07
Torsten
Hallo onur,
Des Weiteren würde ich gerne die ausgeblendete Textbox per Button wieder einblenden wenn ich sie brauchen sollte und befüllen möchte.

AW: VBA Textbox unsichtbar
15.01.2020 08:02:38
Torsten
Hallo Marc,
wie Hajo schon sagt, nimm das Userform_Activate. Bei Textbox_Change musst du ja erst was in die Textbox eingeben, damit sie ausgeblendet wird.
Und

If TextBox3.Visible = "" Then
ist Unsinn. Du willst ja den Inhalt und nicht die Visibilitaet pruefen.
Also:

Private Sub UserForm_Activate()
If TextBox3 = "" Then
TextBox3.Visible = False
End If
End Sub

Und zum wieder Einblenden:

Private Sub CommandButton1_Click()
TextBox3.Visible = True
End Sub

Gruss Torsten
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textbox in VBA unsichtbar machen – So geht's!


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne Excel und erstelle ein neues UserForm. Füge eine TextBox (z.B. TextBox3) und einen Button (z.B. CommandButton1) hinzu.

  2. Initialisierung der TextBox: Verwende das UserForm_Initialize-Ereignis, um die TextBox basierend auf dem Inhalt einer Zelle ein- oder auszublenden. Beispielsweise:

    Private Sub UserForm_Initialize()
       TextBox3 = Worksheets("C_mstrDatenblatt").Cells(10, 8)
       If Me.TextBox3.Value = "" Then
           Me.TextBox3.Visible = False
       End If
    End Sub
  3. Textbox sichtbar machen: Füge dem Button ein Ereignis hinzu, das die TextBox sichtbar macht, wenn sie ausgeblendet ist:

    Private Sub CommandButton1_Click()
       TextBox3.Visible = True
    End Sub
  4. UserForm anpassen: Um die Größe des UserForms je nach Sichtbarkeit der TextBox anzupassen, kannst du folgendes hinzufügen:

    Private Sub UserForm_Activate()
       If TextBox3.Value = "" Then
           TextBox3.Visible = False
           Me.Height = Me.Height - Me.TextBox3.Height
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: TextBox wird nicht unsichtbar.

    • Lösung: Stelle sicher, dass du TextBox3.Visible = False anwendest und nicht versuchst, die Sichtbarkeit mit einem leeren String zu setzen (TextBox3.Visible = "").
  • Fehler: TextBox kann nicht wieder eingeblendet werden.

    • Lösung: Verwende das CommandButton_Click-Ereignis, um die TextBox sichtbar zu machen.

Alternative Methoden

Eine einfache Möglichkeit, die TextBox unsichtbar zu machen, besteht darin, ein zusätzliches Steuerelement wie ein Label zu verwenden, das anzeigt, ob die TextBox sichtbar ist oder nicht. Dies kannst du mit einer Bedingung steuern, die die Sichtbarkeit der TextBox basierend auf deren Inhalt prüft.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie du die Sichtbarkeit einer TextBox in VBA managen kannst. Das Beispiel überwacht den Inhalt einer Excel-Zelle und blendet die TextBox aus, wenn diese leer ist:

Private Sub UserForm_Initialize()
    If IsEmpty(Worksheets("C_mstrDatenblatt").Cells(10, 8)) Then
        TextBox3.Visible = False
    Else
        TextBox3.Value = Worksheets("C_mstrDatenblatt").Cells(10, 8)
    End If
End Sub

Tipps für Profis

  • Nutze die Visible-Eigenschaft: Um die Sichtbarkeit von TextBoxen in VBA effektiv zu steuern, solltest du immer die Visible-Eigenschaft verwenden, um sicherzustellen, dass die Benutzeroberfläche intuitiv bleibt.

  • Verwende Event-Handling: Verwende Ereignisse wie UserForm_Activate, um die Sichtbarkeit der TextBox dynamisch zu steuern, basierend auf Benutzereingaben oder anderen Bedingungen.


FAQ: Häufige Fragen

1. Wie mache ich eine TextBox unsichtbar?
Du kannst eine TextBox in VBA unsichtbar machen, indem du TextBox3.Visible = False verwendest.

2. Wie mache ich eine TextBox wieder sichtbar?
Setze die Sichtbarkeit mit TextBox3.Visible = True, um die TextBox wieder einzublenden.

3. Kann ich die Größe des UserForms dynamisch anpassen?
Ja, du kannst die Höhe des UserForms anpassen, indem du die Höhe in Abhängigkeit von der Sichtbarkeit der TextBox reduzierst, wie im Beispiel gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige