Theme-Editor

In der USERFORM mehrere TextBoxen gleichzeitig in länge, höhe und Schriftgröße mittels VBA Kode gestalten.

Josef24

Mitglied
Registriert
30.05.26
Beiträge
1
Reaktionspunkte
0
Punkte
1
Alter
79
1/3
Themensteller
Hallo und guten Tag,

ich möchte "In der USERFORM mehrere TextBoxen gleichzeitig in Länge, Höhe und Schriftgröße mittels VBA Kode gestalten." Dazu habe ich einen VBA-Kode, der mir die Gestaltung abnimmt. Wenn ich aber diesen Kode deaktiviere, ist die Gestaltung der TextBoxen wieder dahin. Kann mir jemand in dem weiterhelfen, weil es doch sehr mühsam jede TextBox separat zu gestallten?


Rich (BBCode):
Option Explicit

Private Sub UserForm_Initialize()

    Dim ws As Worksheet
    Dim ctrl As MSForms.Control

    Set ws = ThisWorkbook.Worksheets("Stammdaten")

    For Each ctrl In Me.Controls

        If TypeName(ctrl) = "TextBox" Then

            'Darstellung
            ctrl.Font.Size = 12
            ctrl.Height = 24

            'Wert anhand des Tag-Feldes laden
            If Trim$(ctrl.Tag) <> "" Then
                ctrl.Value = ws.Range(ctrl.Tag).Value
            End If

        End If

    Next ctrl

End Sub
 
Hallo,
Ich kann jetzt nicht wirklich VBA, aber so wie ich das verstehe, hast du ja die Gestaltung der Textboxen zur Laufzeit verändert.
Wenn du den Code nun deaktivierst, springt die Form auf die Augangswerte zurück.
Ich würde den Code in zwei Teile aufteilen so das du per Schalter entscheiden kannst was geladen wird, nur Design oder auch Datenauslesen.

Hier mal ein Beispiel welches ich mit Claude habe erstellen lassen:

Code:
Option Explicit

Private Const APPLY_FORMATTING As Boolean = True   ' Schalter: True/False

Private Sub UserForm_Initialize()

    LadeStammdaten

    If APPLY_FORMATTING Then
        FormatiereTextBoxen
    End If

End Sub

Private Sub LadeStammdaten()

    Dim ws As Worksheet
    Dim ctrl As MSForms.Control

    Set ws = ThisWorkbook.Worksheets("Stammdaten")

    For Each ctrl In Me.Controls
        If TypeName(ctrl) = "TextBox" Then
            If Trim$(ctrl.Tag) <> "" Then
                ctrl.Value = ws.Range(ctrl.Tag).Value
            End If
        End If
    Next ctrl

End Sub

Private Sub FormatiereTextBoxen()

    Dim ctrl As MSForms.Control

    For Each ctrl In Me.Controls
        If TypeName(ctrl) = "TextBox" Then
            ctrl.Font.Size = 12
            ctrl.Height = 24
        End If
    Next ctrl

End Sub

Viele Grüße
 
Zurück
Oben