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

Zeilenumbruch in Textbox aus Steuerelemente-Toolbo

Forumthread: Zeilenumbruch in Textbox aus Steuerelemente-Toolbo

Zeilenumbruch in Textbox aus Steuerelemente-Toolbo
Franz
Hallo Fachleute,
auch von mir ein nachträglicher Wunsch, ein paar ruhige Ostertage gehabt zu haben.
Meine Frage: ich setze aus mehreren Teilen einen String zusammen und lasse diesen dann in einer Textbox aus "Zeichnen" anzeigen, hier der (unvollständige) Code:

Sub sichtbar()
Dim txtGes As String
Dim n As Byte, lftZahl As Integer
For n = 1 To 12
If Month(Date) = n Then lftZahl = n * 160 + 200
Next n
txtGes = "Jahr  " & [a1] & " :" & vbLf & vbLf
If [h5] > 0 Then txtGes = txtGes & [h5] & "       Januar" & vbLf
If [t5] > 0 Then txtGes = txtGes & [t5] & "       Februar" & vbLf
If [af5] > 0 Then txtGes = txtGes & [af5] & "       März" & vbLf
If [ar5] > 0 Then txtGes = txtGes & [ar5] & "       April" & vbLf
If [bd5] > 0 Then txtGes = txtGes & [bd5] & "       Mai" & vbLf
If [bp5] > 0 Then txtGes = txtGes & [bp5] & "       Juni" & vbLf
If [cb5] > 0 Then txtGes = txtGes & [cb5] & "       Juli" & Chr(10)
If [cn5] > 0 Then txtGes = txtGes & [cn5] & "       August" & Chr(10)
If [cz5] > 0 Then txtGes = txtGes & [cz5] & "       September" & Chr(10)
If [dl5] > 0 Then txtGes = txtGes & [dl5] & "       Oktober" & Chr(10)
If [dx5] > 0 Then txtGes = txtGes & [dx5] & "       November" & Chr(10)
If [ej5] > 0 Then txtGes = txtGes & [ej5] & "       Dezember"
With Worksheets("Kalender")
If .Shapes("TextfeldLaufen").Visible = False Then
.Unprotect
With .Shapes("TextfeldLaufen")
.Visible = True
.Top = 80
.Left = lftZahl
Else
schliessen
End If
End With
End Sub

Nun würde ich das gerne in einer Textbox aus Steuerelemente-Toolbox bewerkstelligen, kriege da aber keinen Zeilenumbruch rein:

Sub sichtbar()
Dim txtGes As String
Dim n As Byte, lftZahl As Integer
For n = 1 To 12
If Month(Date) = n Then lftZahl = n * 160 + 200
Next n
txtGes = "Jahr  " & [a1] & " :" & vbLf & vbLf
If [h5] > 0 Then txtGes = txtGes & [h5] & "       Januar" & vbLf
If [t5] > 0 Then txtGes = txtGes & [t5] & "       Februar" & vbLf
If [af5] > 0 Then txtGes = txtGes & [af5] & "       März" & vbLf
If [ar5] > 0 Then txtGes = txtGes & [ar5] & "       April" & vbLf
If [bd5] > 0 Then txtGes = txtGes & [bd5] & "       Mai" & vbLf
If [bp5] > 0 Then txtGes = txtGes & [bp5] & "       Juni" & vbLf
If [cb5] > 0 Then txtGes = txtGes & [cb5] & "       Juli" & Chr(10)
If [cn5] > 0 Then txtGes = txtGes & [cn5] & "       August" & Chr(10)
If [cz5] > 0 Then txtGes = txtGes & [cz5] & "       September" & Chr(10)
If [dl5] > 0 Then txtGes = txtGes & [dl5] & "       Oktober" & Chr(10)
If [dx5] > 0 Then txtGes = txtGes & [dx5] & "       November" & Chr(10)
If [ej5] > 0 Then txtGes = txtGes & [ej5] & "       Dezember"
With Worksheets("Kalender")
If .TextBox1.Visible = False Then
.Unprotect
With .TextBox1
.Visible = True
.Top = 80
.Left = lftZahl
End Sub

Damit wird der Text in einer einzigen Zeile geschrieben, die Absatzmarken werden dargestellt. Und es hilft ein vbLf, Chr(10) oder Chr(13)
Gibt es noch irgendeine Anweisung, mit der man da einen Zeilenumbruch reinkriegen kann?
Vielen Dank im Voraus und Grüße
Franz
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilenumbruch in Textbox aus Steuerelemente-Toolbo
barni
hi
setz mal die eigenschaften "multiline" und "wordwrap" auf true.
das wird es sein.
Danke !! Das war's!
Franz
Hi Barni,
super, danke! WordWrap hatte ich schon auf True, aber MultiLine hab ich bislang überlesen. Und damit haut's!!
Vielen Dank und Grüße
Franz
:-)
barni
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeilenumbruch in Textbox aus Steuerelemente-Toolbox


Schritt-für-Schritt-Anleitung

Um einen Zeilenumbruch in einer Textbox aus der Steuerelemente-Toolbox in Excel zu ermöglichen, befolge die folgenden Schritte:

  1. Stelle sicher, dass du ein Formularsteuerelement für die Textbox in dein Excel-Dokument eingefügt hast.
  2. Klicke mit der rechten Maustaste auf die Textbox und wähle „Eigenschaften“.
  3. Setze die Eigenschaften MultiLine und WordWrap auf True. Diese Einstellungen erlauben es der Textbox, den Text in mehreren Zeilen darzustellen.
  4. Verwende den folgenden VBA-Code, um den Text in die Textbox einzufügen:

    Sub sichtbar()
       Dim txtGes As String
       Dim n As Byte, lftZahl As Integer
       For n = 1 To 12
           If Month(Date) = n Then lftZahl = n * 160 + 200
       Next n
       txtGes = "Jahr  " & [a1] & " :" & vbLf & vbLf
       ' Füge hier den Text aus den Zellen hinzu
       If [h5] > 0 Then txtGes = txtGes & [h5] & "       Januar" & vbLf
       ' ... weitere Monate
    
       With Worksheets("Kalender")
           With .TextBox1
               .Visible = True
               .Top = 80
               .Left = lftZahl
               .Value = txtGes
           End With
       End With
    End Sub

Häufige Fehler und Lösungen

  1. Textbox bleibt leer oder zeigt nur eine Zeile an:

    • Überprüfe, ob die Eigenschaften MultiLine und WordWrap auf True gesetzt sind.
  2. Textbox ist ausgegraut (nicht bearbeitbar):

    • Stelle sicher, dass die Textbox nicht durch einen Schutz auf dem Arbeitsblatt blockiert ist. Entferne den Schutz, falls nötig.
  3. Text wird nicht korrekt formatiert:

    • Achte darauf, dass du die richtigen Zeilenumbrüche (vbLf oder Chr(10)) in deinem VBA-Code verwendest.

Alternative Methoden

Falls du Schwierigkeiten mit dem Steuerelement hast, kannst du auch ein ActiveX-Steuerelement verwenden:

  1. Füge ein ActiveX-Textfeld in dein Arbeitsblatt ein.
  2. Setze die Eigenschaften MultiLine und WordWrap auf True.
  3. Verwende ähnlichen VBA-Code wie oben, um Text in das ActiveX-Textfeld einzufügen.

Praktische Beispiele

Hier ein einfaches Beispiel, wie du die Monate in einer Textbox darstellen kannst:

Sub MonateInTextbox()
    Dim txtGes As String
    txtGes = "Monate:" & vbLf & _
              "Januar" & vbLf & _
              "Februar" & vbLf & _
              "März" & vbLf & _
              "April" & vbLf & _
              "Mai" & vbLf & _
              "Juni" & vbLf & _
              "Juli" & vbLf & _
              "August" & vbLf & _
              "September" & vbLf & _
              "Oktober" & vbLf & _
              "November" & vbLf & _
              "Dezember"

    Worksheets("Kalender").TextBox1.Value = txtGes
End Sub

Tipps für Profis

  • Nutze die .ScrollBars-Eigenschaft, um bei umfangreichem Text eine Scrollbar in deiner Textbox zu aktivieren.
  • Überlege, ob du die TextBox dynamisch anpassen möchtest, damit sie sich je nach Inhalt automatisch vergrößert.
  • Experimentiere mit der Schriftgröße und dem Layout der Textbox, um die Lesbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich ein Excel Textfeld Formularsteuerelement einfügen?
Um ein Textfeld aus der Steuerelemente-Toolbox einzufügen, gehe zu „Entwicklertools“, klicke auf „Einfügen“ und wähle das Textfeldsymbol aus.

2. Was tun, wenn das Textfeld ausgegraut ist?
Überprüfe, ob das Arbeitsblatt geschützt ist oder ob das Textfeld in einem geschützten Bereich platziert wurde. Entferne den Schutz, um das Textfeld zu aktivieren.

3. Kann ich den Text in der Textbox formatieren?
Standardmäßig kannst du in einer Textbox keine spezifischen Textformatierungen wie Fett oder Kursiv anwenden. Du kannst jedoch die Schriftart und -größe über die Eigenschaften der Textbox anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige