Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1724to1728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhalt Listboxes über mehrere Spalten
21.11.2019 17:49:19
Wolfgang
Hallo,
in der angefügten Beispielsmappe befindet sich ein UF, welches über Doppelklick in Spalte F aufgerufen wird.
Wie kann ich erreichen, dass:
a) Bei Aktivierung eines OptionButtons die jeweilige ausgeblendete Tabelle (intern oder extern) angesteuert wird und die Überschriften bzw. der jeweilige Text in Zeile 1in der Listbox1 angezeigt wird.
b) Bei Markierung einer Überschrift in Listbox1 der jeweilige Text aus der Tabelle unter der Überschrift in Listbox2 angezeigt wird.
c) Bei Betätigen der Schaltfläche Eintragen die jeweils markierten Einträge –incl. der Bezeichnung des Option Buttons- ab der markierten Zelle jeweils eine Spalte weiter eingetragen wird (z.B.: Spalte F = „intern“, Spalte G = Lehrgang_int6, Spalte H = Lehrgang6.8).
Danke schon jetzt allen für die Rückmeldung!
Herzliche Grüße - Wolfgang
https://www.herber.de/bbs/user/133355.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt Listboxes über mehrere Spalten
22.11.2019 10:28:35
fcs
Hallo Wolfgang,
hier der entsprechende Code für dein Userform - einfach den vorhandenen durch diesen Code ersetzen.
LG
Franz
'Code im Userform
Private wksInternExtern As Worksheet
Private Sub prcListbox1_fuellen()
Dim Spalte As Long
Set wksInternExtern = Nothing
If Me.OptionButton1.Value = True Then
Set wksInternExtern = ThisWorkbook.Worksheets("intern")
ElseIf Me.OptionButton2.Value = True Then
Set wksInternExtern = ThisWorkbook.Worksheets("extern")
End If
If Not wksInternExtern Is Nothing Then
With wksInternExtern
Me.ListBox1.ListIndex = -1
Me.ListBox1.Clear
Me.ListBox2.Clear
For Spalte = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
Me.ListBox1.AddItem .Cells(1, Spalte).Text
Next
End With
End If
End Sub
Private Sub CommandButton1_Click()
Dim rngZelle As Range
Set rngZelle = ActiveCell
Dim intOffset As Integer, intItem As Integer
If Me.ListBox1.ListIndex = -1 Then
MsgBox "Bitte erst Schulung/Lehrgang in Listbox1 wählen"
Exit Sub
End If
If rngZelle.Value  "" Then
If MsgBox("Soll der vorhandene Eintrag überschrieben werden?", _
vbQuestion + vbOKCancel, "Schulung/Lehrgang eintragen") = vbCancel Then
GoTo Beenden
End If
With ActiveSheet
.Range(rngZelle, .Cells(rngZelle.Row, .Columns.Count).End(xlToLeft)).ClearContents
End With
End If
If Me.OptionButton1 = True Then
rngZelle.Value = "intern"
ElseIf Me.OptionButton2 = True Then
rngZelle.Value = "extern"
End If
intOffset = 1
rngZelle.Offset(0, intOffset).Value = Me.ListBox1.Value
With Me.ListBox2
For intItem = 0 To .ListCount - 1
intOffset = intOffset + 1
rngZelle.Offset(0, intOffset).Value = .List(intItem, 0)
Next
End With
Beenden:
Unload Me
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub ListBox1_Change()
Me.ListBox2.Clear
If Me.ListBox1.ListIndex = -1 Then
Else
Spalte = Me.ListBox1.ListIndex + 1
With wksInternExtern
For zeile = 2 To .Cells(.Rows.Count, Spalte).End(xlUp).Row
Me.ListBox2.AddItem .Cells(zeile, Spalte).Text
Next
End With
End If
End Sub
Private Sub OptionButton1_Click()
Call prcListbox1_fuellen
End Sub
Private Sub OptionButton2_Click()
Call prcListbox1_fuellen
End Sub
Private Sub UserForm_Activate()
'ggf. vorhandene Einträge aus Tabelle in userform übernehmen
Select Case ActiveCell.Text
Case ""
'neuer Eintrag
Exit Sub
Case "intern"
Me.OptionButton1 = True
Me.ListBox1 = ActiveCell.Offset(0, 1).Text
Case "extern"
Me.OptionButton2 = True
Me.ListBox1 = ActiveCell.Offset(0, 1).Text
Case Else
MsgBox "Inhalt der gewählten Zelle ist nicht ""intern"" oder ""extern"""
Exit Sub
End Select
End Sub

Anzeige
Danke, Franz - Kleinigkeit noch
22.11.2019 11:22:55
Wolfgang
Hallo Franz,
zunächst tausend Dank für Deine Rückmeldung und die Ausarbeitungen. Freut mich riesig. - Eine Kleinigkeit vielleicht noch: Derzeit werden aus der Listbox2 alle Einträge in die jeweiligen Zellen/Spalten übernommen. Wäre da noch denkbar, dass auch da lediglich der markierte Eintrag übernommen wird? - Vielen Dank schon jetzt wieder für Deine Rückmeldung.
Herzliche Grüße - Wolfgang
AW: Danke, Franz - Kleinigkeit noch
22.11.2019 14:45:17
fcs
Hallo Wolfgang,
immer ein ausgewähltes Lehrgangs- bzw. Schulungsziel in der Spalte H eingetragen werden soll, dann du die folgenden beiden Makros im Userformcode wie folgt anpassen.
LG
Franz
Private Sub CommandButton1_Click()
Dim rngZelle As Range
Set rngZelle = ActiveCell
Dim intOffset As Integer, intItem As Integer
If Me.ListBox1.ListIndex = -1 Then
MsgBox "Bitte erst Schulung/Lehrgang in Listbox1 wählen"
Exit Sub
ElseIf Me.ListBox2.ListIndex = -1 Then
MsgBox "Bitte erst Lehrgangs- bzw. Schulungsziel in Listbox2 wählen"
Exit Sub
End If
If rngZelle.Value  "" Then
If MsgBox("Soll der vorhandene Eintrag überschrieben werden?", _
vbQuestion + vbOKCancel, "Schulung/Lehrgang eintragen") = vbCancel Then
GoTo Beenden
End If
With ActiveSheet
.Range(rngZelle, .Cells(rngZelle.Row, rngZelle.Column + 2)).ClearContents
End With
End If
If Me.OptionButton1 = True Then
rngZelle.Value = "intern"
ElseIf Me.OptionButton2 = True Then
rngZelle.Value = "extern"
End If
intOffset = 1
rngZelle.Offset(0, intOffset).Value = Me.ListBox1.Value
With Me.ListBox2
intOffset = intOffset + 1
rngZelle.Offset(0, intOffset).Value = .List(.ListIndex, 0)
End With
Beenden:
Unload Me
End Sub
Private Sub UserForm_Activate()
'ggf. vorhandene Einträge aus Tabelle in userform übernehmen
Select Case ActiveCell.Text
Case ""
'neuer Eintrag
Exit Sub
Case "intern"
Me.OptionButton1 = True
Me.ListBox1 = ActiveCell.Offset(0, 1).Text
Me.ListBox2 = ActiveCell.Offset(0, 2).Text
Case "extern"
Me.OptionButton2 = True
Me.ListBox1 = ActiveCell.Offset(0, 1).Text
Me.ListBox2 = ActiveCell.Offset(0, 2).Text
Case Else
MsgBox "Inhalt der gewählten Zelle ist nicht ""intern"" oder ""extern"""
Exit Sub
End Select
End Sub

Anzeige
Vielen Vielen Dank, Franz!!! - läuft super!!
22.11.2019 17:23:51
Wolfgang
Hallo Franz,
erneut vielen lieben Dank. Du hast mir sehr geholfen. Mit den Änderungen macht der Code es nun genauso, wie ich es mir vorgestellt habe. Danke auch für Deine Arbeit damit. Ein schönes Wochenende und herzliche Grüße - Wolfgang

331 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige