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

Forumthread: Eingaben mehrerer Zellen in Textbox anzeigen

Eingaben mehrerer Zellen in Textbox anzeigen
02.11.2017 15:20:26
Rouzbeh
Hallo zusammen,
das ist mein erster Beitrag hier. Ich habe eine Frage. Ich versuche eine Arbeitszeitsverfassung mit Hilfe von VBA zuschreiben bzw. zubasteln.
Es gibt eine Spalte in der Tabelle Kalender. Dort werden die Dienstnummer eingetragen. Mit Hilfe von Userform soll die Spalte kontrolliert werden und falls einen Dienst eingetragen wurde, soll er in einem TextBox in Userform angezeigt werden.
jetzt meine Frage ist:
Ich habe den folgenden code geschrieben aber die Dienste werden überschrieben und am Ende nur den letzten Dienst angezeigt.
Dim i As Long
For i = 8 To 38
If Sheets("Kalender").Cells(i,2) "" Then
TextBox3 = Sheets("Kalender").Range("B" & i)
End If
Next
Ich möchte dass die Dienstnummern alle untereinander angezeigt werden. kann jemand mir mit diesem Problem helfen?
Vielen Dank
Rouzbeh
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingaben mehrerer Zellen in Textbox anzeigen
02.11.2017 15:53:32
Peter(silie)
Hallo,
da ist eine Textbox nicht das richtige.
Für auflistungen solltest du Comboboxen oder Listboxen verwenden.
Hier eine kleine Beispielmappe: https://www.herber.de/bbs/user/117389.xlsm
(einfach die Userform starten)
Hier nur der Code:
Option Explicit
Option Base 1
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim lRow, i As Long
Dim arr() As Variant
Set ws = ThisWorkbook.Sheets(1) 'Anpassen auf deine Tablle
With ws
lRow = .Cells(.Rows.Count, 2).End(xlUp).Row
ReDim arr(lRow)
For i = 1 To lRow
arr(i) = .Cells(i, 2).Value
Next i
End With
Me.ListBox1.List = arr
Me.ComboBox1.List = arr
Erase arr
End Sub

Anzeige
AW: Eingaben mehrerer Zellen in Textbox anzeigen
02.11.2017 15:55:13
Michael
Hallo!
Die MultiLine-Eigenschaft der TextBox muss auf "True" gesetzt sein.
Außerdem überschreibt Deine Schleife tatsächlich den TextBox-Text immer mit dem nächsten Wert. Besser Du sammelst alle Zellwerte in einem String (inkl. Zeilensprung als Trennzeichen) und übergibst dies dann gesamt dem TextBox-Text, schematisch:
    Dim i As Long, s As String
For i = 2 To 8
s = s & Cells(i, "A") & Chr(10)
Next i
UserForm1.TextBox1.Text = s
LG
Michael
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Eingaben mehrerer Zellen in Textbox anzeigen


Schritt-für-Schritt-Anleitung

Um die Eingaben mehrerer Zellen in einer Textbox anzuzeigen, kannst du den folgenden VBA-Code verwenden. Achte darauf, dass die MultiLine-Eigenschaft der TextBox auf "True" gesetzt ist. Hier ist der Schritt-für-Schritt-Prozess:

  1. Öffne das Visual Basic for Applications (VBA)-Editor durch Drücken von ALT + F11.

  2. Füge ein neues UserForm hinzu.

  3. Füge eine TextBox (TextBox1) auf das UserForm hinzu.

  4. Setze die MultiLine-Eigenschaft der TextBox auf "True".

  5. Füge den folgenden Code in das UserForm-Module ein:

    Dim i As Long, s As String
    For i = 8 To 38
       If Sheets("Kalender").Cells(i, 2) <> "" Then
           s = s & Sheets("Kalender").Cells(i, 2).Value & Chr(10)
       End If
    Next i
    Me.TextBox1.Text = s
  6. Schließe den VBA-Editor und starte das UserForm. Du solltest nun alle Dienstnummern in der TextBox sehen.


Häufige Fehler und Lösungen

  • TextBox zeigt nur den letzten Dienst an:

    • Stelle sicher, dass du alle Werte in einer einzigen Variable sammelst, anstatt die TextBox direkt in der Schleife zu aktualisieren. Benutze den oben genannten Code.
  • MultiLine-Eigenschaft nicht gesetzt:

    • Überprüfe, ob die MultiLine-Eigenschaft der TextBox auf "True" gesetzt ist. Andernfalls werden die Werte nicht richtig angezeigt.

Alternative Methoden

Wenn du eine Auswahl oder mehrere Einträge benötigst, kannst du stattdessen eine ListBox oder ComboBox verwenden. Hier ist ein Beispiel, um die Werte in eine ListBox zu übertragen:

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Dim lRow As Long, i As Long
    Dim arr() As Variant
    Set ws = ThisWorkbook.Sheets("Kalender")
    lRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row
    ReDim arr(1 To lRow)
    For i = 1 To lRow
        arr(i) = ws.Cells(i, 2).Value
    Next i
    Me.ListBox1.List = arr
End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Dienstnummern aus der Excel-Tabelle in eine TextBox integrieren kannst. Angenommen, du hast in der Tabelle "Kalender" in der Spalte B die Dienstnummern eingetragen:

  1. Erstelle eine Tabelle:

    • Kalender
      • B8: 123
      • B9: 456
      • B10: 789
  2. Füge den oben beschriebenen Code in dein UserForm ein.

  3. Starte das UserForm: Du solltest in der TextBox alle Dienstnummern untereinander sehen.


Tipps für Profis

  • Verwende die Option Explicit: Dies hilft dir, Fehler bei der Variablen-Deklaration zu vermeiden.
  • Optimierung: Wenn die Datenmenge groß ist, könntest du in Erwägung ziehen, die Daten in ein Array zu laden und dann in die TextBox zu übertragen, um die Performance zu verbessern.
  • Benutzerfreundlichkeit: Überlege, ob du eine ComboBox oder ListBox verwenden möchtest, um den Benutzern eine Auswahl zu ermöglichen.

FAQ: Häufige Fragen

1. Frage
Kann ich die TextBox auch mit Werten aus mehreren Spalten füllen?
Antwort: Ja, du kannst die Schleife anpassen, um Werte aus mehreren Spalten zu kombinieren.

2. Frage
Wie kann ich die TextBox leeren?
Antwort: Setze den Text der TextBox einfach auf einen leeren String: Me.TextBox1.Text = "".

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige