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

Textbox nach unten scrollen

Forumthread: Textbox nach unten scrollen

Textbox nach unten scrollen
19.01.2005 23:48:27
Matthias
Hallo Excelfans,
ich stehe irgendwie auf dem Schlauch...
Ich habe ein nichtmodales Userform mit einer großen Multiline-TextBox mit Scrollbar.
Mit einem Code im UF-Modul hänge ich während eines Makroablaufes nach und nach Zeilen an (also Protokoll):
Sub Add(ByVal zeile As String, AnzEnter)
With LogText
.Value = .Value & zeile & String(AnzEnter, vbLf)
End With
DoEvents
End Sub

Der Aufruf geht also mit
UF_Log.Add "Meldung",1
Wenn die Textbox nun mehr Zeilen hat, als dargestellt werden können, scrollt die Textbox nun nicht nach unten und man kann den neuen Txt nicht sehen.
Und genau das will ich aber!
Kann mir jemand weiterhelfen?
Gruß Matthias
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox nach unten scrollen
20.01.2005 00:05:10
Matthias
Hallo nochmal,
vielleicht ist es noch wichtig, zu erwähnen, dass die Mappe mit dem UserForm während der Codeausführung nicht mehr die aktive Mappe ist.
Allerdings ist sie nach dem Ende des Programms wieder aktiv, und die Ansich wird trotzdem nicht aktualisiert.
Im folgendem Tesptrogramm funktioniert das Scrollen allerdings einwandfrei, ich kann immer den letzten Eintrag sehen:
Private Sub Text()
Dim i, j
UF_Log.Show
For i = 1 To 30
UF_Log.Add i & i & i, 2
For j = 1 To 100000: Next
Next i
End Sub
Grüße, Matthias
Anzeige
AW: Textbox nach unten scrollen
Ramses
Hallo Matthias

Private Sub CommandButton1_Click()
With Me.TextBox1
.Text = .Text & Chr$(13) & "Mustertext"
.SetFocus
.SelStart = (Len(Me.TextBox1.Text))
End With
End Sub

Damit sollte es gehen.
Gruss Rainer
AW: Textbox nach unten scrollen
20.01.2005 01:02:50
Josef
Hallo Matthias!
Ich hab das jetzt probiert und bei mir klappt Rainers Tip nicht!
So geht's bei mir:
Füge deinem UF eine Textbox hinzu, gib ihr den Namen "Dummy", setze
die Höhe und die Breite auf Null und ergänze deinen Code wie im Beispiel.

Sub Add(ByVal zeile As String, AnzEnter)
Dummy.SetFocus
With LogText
.Value = .Value & zeile & String(AnzEnter, vbLf)
.SetFocus
.SelStart = (Len(.Text))
End With
DoEvents
End Sub

Ist zwar nicht die feine Art, aber es erfüllt seinen Zweck!
Gruß Sepp
Anzeige
AW: Textbox nach unten scrollen
20.01.2005 02:47:47
Matthias
Hallo Sepp,
nicht die feine Art, aber trotzdem genial, eben weil es funktioniert! :-))
Vielen Dank!
Gruß Matthias
AW: Textbox nach unten scrollen
20.01.2005 03:02:27
Matthias
Hallo Sepp,
Leider hat es aufgrund sehr widriger Umstände doch nicht geklappt.
Ich schicke nämlich während der Programmausführung mit SendKeys Zeichen in den Tastaturpuffer, um das VBA-Projektkennwort programmgesteuert einzugeben (soweit ich weiß, geht das nicht anders).
Und diese Zeichen kriegt dann wohl die Dummy-Textbox ab... Locked=True half auch nicht.
Naja, so essentiel ist das Problem ja nicht.
Danke trotzdem nochmal für deine Bemühungen!
Gruß Matthias
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Textbox in Excel richtig nach unten scrollen


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass Deine Textbox in Excel nach unten scrollt, während Du neue Zeilen hinzufügst, kannst Du die folgenden Schritte befolgen:

  1. Erstelle ein UserForm: Füge ein UserForm in Deinem Excel-Projekt hinzu und platziere eine Multiline-Textbox mit einer Scrollbar darauf.

  2. Code zum Hinzufügen von Text: Verwende den folgenden VBA-Code, um neue Zeilen in die Textbox einzufügen. Dieser Code sorgt dafür, dass die Textbox beim Hinzufügen neuer Zeilen automatisch nach unten scrollt.

    Sub Add(ByVal zeile As String, AnzEnter)
       With LogText
           .Value = .Value & zeile & String(AnzEnter, vbLf)
           .SetFocus
           .SelStart = Len(.Text) ' Setzt den Cursor an das Ende des Textes
       End With
       DoEvents
    End Sub
  3. Textbox Fokus setzen: Achte darauf, dass Du den Fokus auf die Textbox setzt, damit sie nach unten scrollt, wenn Du neue Texte hinzufügst.


Häufige Fehler und Lösungen

  • Excel nach unten scrollen geht nicht: Wenn die Textbox nicht nach unten scrollt, überprüfe, ob der Fokus korrekt gesetzt ist. Verwende .SetFocus und .SelStart, um sicherzustellen, dass der Cursor am Ende des Textes positioniert wird.

  • Keine Aktualisierung der Ansicht: Wenn die UserForm nicht die aktive Mappe ist, kann es sein, dass die Ansicht nicht aktualisiert wird. Stelle sicher, dass Du während des Codeablaufs die UserForm aktiv hast.


Alternative Methoden

Eine alternative Methode, um das Problem zu lösen, besteht darin, eine zusätzliche "Dummy"-Textbox zu erstellen, die unsichtbar ist und den Fokus erhält. Hier ein Beispiel:

Sub Add(ByVal zeile As String, AnzEnter)
   Dummy.SetFocus ' Dummy-Textbox aktivieren
   With LogText
       .Value = .Value & zeile & String(AnzEnter, vbLf)
       .SetFocus
       .SelStart = Len(.Text)
   End With
   DoEvents
End Sub

Diese Methode ist zwar nicht optimal, funktioniert jedoch in vielen Fällen und sorgt dafür, dass die Textbox beim Hinzufügen neuer Inhalte korrekt nach unten scrollt.


Praktische Beispiele

Hier ein einfaches Beispiel, um eine Liste von Zahlen in die Textbox einzufügen:

Private Sub Text()
   Dim i As Integer
   UF_Log.Show
   For i = 1 To 30
       UF_Log.Add "Zahl: " & i, 1
       For j = 1 To 100000: Next j ' Zeitverzögerung
   Next i
End Sub

Dieses Skript öffnet das UserForm und fügt 30 Zahlen in die Textbox ein. Du solltest sehen, dass die Textbox automatisch nach unten scrollt, während neue Inhalte hinzugefügt werden.


Tipps für Profis

  • Verwende DoEvents nach dem Hinzufügen von Text, um sicherzustellen, dass Excel die Änderungen sofort anzeigt.
  • Bei der Verwendung von SendKeys achte darauf, dass der Fokus auf der richtigen Textbox ist, um unerwünschte Eingaben in andere Felder zu vermeiden.
  • Experimentiere mit der Sichtbarkeit der Dummy-Textbox, um sicherzustellen, dass sie die Benutzeroberfläche nicht stört.

FAQ: Häufige Fragen

1. Warum scrollt meine Textbox nicht nach unten?
Wenn die Textbox nicht nach unten scrollt, überprüfe die Verwendung von .SetFocus und .SelStart. Stelle sicher, dass der Text immer am Ende hinzugefügt wird.

2. Funktioniert das bei allen Excel-Versionen?
Ja, die oben genannten Methoden sollten in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren, solange Du VBA verwenden kannst.

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