Anzeige
Archiv - Navigation
1856to1860
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
Inhaltsverzeichnis

Listbox

Listbox
03.12.2021 12:08:54
Gerd
Hallo Zusammen,
ich habe in einer UserForm eine Listbox erstellt, die aus Tabelle1 auf A4 bis A50 die Einträge anzeigt.
Auf jedem Zellen-Eintrag ist ein Link gelegt, der einen Sprung zum entsprechenden Tabellenblatt macht.
Ist es möglich, dass ich den Eintrag in der ListBox anklicke und direkt zum entsprechenden Tabellenblatt springe kann?

Private Sub CommandButton1_Click()
With Range("Tabelle1!A4:A50")
Me.Tag = "1"
.Cells(ListBox1.ListIndex + 4, 1).Value = CDbl(TextBox1.Value)
Me.Tag = ""
End With
End Sub
Private Sub userform_initialize()
With ListBox1
.RowSource = "Tabelle1!A4:A50"
.ColumnHeads = True
End With
End Sub
Das funktioniert ja auch gut.....ich bekomme es nur nicht hin, dass wenn ich einen Eintrag in der ListBox klicke, auch auf das entsprechende Tabellenblatt komme :(

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox
03.12.2021 12:24:14
Rudi
Hallo,
im Click-Event der LBx:
Sheets("Tabelle1").Cells(ListBox1.Listindex+4,1).Hyperlinks(1).Follow
Gruß
Rudi
AW: Listbox
03.12.2021 14:46:11
Oraculix
so vielleicht?
Beachte Tabelle1 und Listbox1 gegebenenfalls an Deine Namen anzupassen.
'Doppelklick in Listbox sucht Eintrag in Tabelle

Private Sub Lst_Treffer_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim OpenFile As String
Dim rngSuche As Range
Set rngSuche = Worksheets("Tabelle1").Columns(1).Find(Listbox1.Value, LookAt:=xlPart)
If Not rngSuche Is Nothing Then
Unload UserForm1
Application.Goto Reference:=rngSuche
Unload UserForm1
Else
Unload UserForm1
MsgBox "Titel nicht gefunden"
End If
End Sub
Gruß
Oraculix
Anzeige
AW: Listbox
06.12.2021 06:41:47
Gerd
.....das funktioniert leider beides nicht :(
AW: Listbox
06.12.2021 08:08:50
Pierre
Hallo Gerd,
warum Hyperlink? Sind die Blätter nicht in der gleichen Mappe?
Wenn doch, brauchst du eigentlich keine Links und du musst auch die Listbox nicht über Zellinhalte füllen.

Dim objSheet As Object                                                              'für Schleife über alle Blätter
With ListBox1                                                                   'Listbox1
.Clear                                                                      'zunächst leeren
For Each objSheet In ThisWorkbook.Sheets                                'Schleife über alle Blätter
If objSheet.Visible = xlSheetVisible Then .AddItem objSheet.Name    'wenn Blatt sichtbar, dann Blattname in Listbox schreiben
Next objSheet                                                           'nächstes Blatt
End With
Hiermit kannst du alle (eingeblendeten) Blätter automatisch in die Listbox schreiben lassen, wenn auch versteckte rein sollen, reicht in der 4. Zeile

.AddItem objSheet.Name
Hiermit kommst du bei Auswahl eines Eintrages sofort auf das Blatt:

Private Sub ListBox1_Change()
Dim Listenwert As Long                                              'zur Ermittlung, welcher Wert ausgewählt wurde
For Listenwert = 0 To ListBox1.ListCount - 1                    'Schleife für alle Inhalte
If ListBox1.Selected(Listenwert) Then                       'Wenn ein Wert ausgewählt
Worksheets(Listenwert + 1).Select                       'dann dieses Blatt anwählen
End If
Next Listenwert                                                 'nächster Wert
End Sub
Müsstest du noch in deiner Userform integrieren, ohne Userform (also direkt mit Listbox auf einem Tabellenblatt) klappt es.
Evtl. Brauchst du das

+ 1
nicht, das habe ich nicht getestet.
Gruß Pierre
Anzeige
AW: Listbox
06.12.2021 08:28:14
Pierre
Hallo Gerd,
warum Hyperlink? Sind die Blätter nicht in der gleichen Mappe?
Wenn doch, brauchst du eigentlich keine Links und du musst auch die Listbox nicht über Zellinhalte füllen.

Dim objSheet As Object                                                              'für Schleife über alle Blätter
With ListBox1                                                                   'Listbox1
.Clear                                                                      'zunächst leeren
For Each objSheet In ThisWorkbook.Sheets                                'Schleife über alle Blätter
If objSheet.Visible = xlSheetVisible Then .AddItem objSheet.Name    'wenn Blatt sichtbar, dann Blattname in Listbox schreiben
Next objSheet                                                           'nächstes Blatt
End With
Hiermit kannst du alle (eingeblendeten) Blätter automatisch in die Listbox schreiben lassen, wenn auch versteckte rein sollen, reicht in der 4. Zeile

.AddItem objSheet.Name
Hiermit kommst du bei Auswahl eines Eintrages sofort auf das Blatt:

Private Sub ListBox1_Change()
Dim Listenwert As Long                                              'zur Ermittlung, welcher Wert ausgewählt wurde
For Listenwert = 0 To ListBox1.ListCount - 1                    'Schleife für alle Inhalte
If ListBox1.Selected(Listenwert) Then                       'Wenn ein Wert ausgewählt
Worksheets(Listenwert + 1).Select                       'dann dieses Blatt anwählen
End If
Next Listenwert                                                 'nächster Wert
End Sub
Müsstest du noch in deiner Userform integrieren, ohne Userform (also direkt mit Listbox auf einem Tabellenblatt) klappt es.
Evtl. Brauchst du das

+ 1
nicht, das habe ich nicht getestet.
Gruß Pierre
Anzeige
AW: Listbox
06.12.2021 08:36:03
Pierre
Hallo Gerd,
warum Hyperlink? Sind die Blätter nicht in der gleichen Mappe?
Wenn doch, brauchst du eigentlich keine Links und du musst auch die Listbox nicht über Zellinhalte füllen.

Dim objSheet As Object                                                              'für Schleife über alle Blätter
With ListBox1                                                                   'Listbox1
.Clear                                                                      'zunächst leeren
For Each objSheet In ThisWorkbook.Sheets                                'Schleife über alle Blätter
If objSheet.Visible = xlSheetVisible Then .AddItem objSheet.Name    'wenn Blatt sichtbar, dann Blattname in Listbox schreiben
Next objSheet                                                           'nächstes Blatt
End With
Hiermit kannst du alle (eingeblendeten) Blätter automatisch in die Listbox schreiben lassen, wenn auch versteckte rein sollen, reicht in der 4. Zeile

.AddItem objSheet.Name
Hiermit kommst du bei Auswahl eines Eintrages sofort auf das Blatt:

Private Sub ListBox1_Change()
Dim Listenwert As Long                                              'zur Ermittlung, welcher Wert ausgewählt wurde
For Listenwert = 0 To ListBox1.ListCount - 1                    'Schleife für alle Inhalte
If ListBox1.Selected(Listenwert) Then                       'Wenn ein Wert ausgewählt
Worksheets(Listenwert + 1).Select                       'dann dieses Blatt anwählen
End If
Next Listenwert                                                 'nächster Wert
End Sub
Müsstest du noch in deiner Userform integrieren, ohne Userform (also direkt mit Listbox auf einem Tabellenblatt) klappt es.
Evtl. Brauchst du das

+ 1
nicht, das habe ich nicht getestet.
Gruß Pierre
Anzeige
AW: Listbox
06.12.2021 08:51:39
Pierre
Hallo Gerd,
warum Hyperlink? Sind die Blätter nicht in der gleichen Mappe?
Wenn doch, brauchst du eigentlich keine Links und du musst auch die Listbox nicht über Zellinhalte füllen.

Dim objSheet As Object                                                              'für Schleife über alle Blätter
With ListBox1                                                                   'Listbox1
.Clear                                                                      'zunächst leeren
For Each objSheet In ThisWorkbook.Sheets                                'Schleife über alle Blätter
If objSheet.Visible = xlSheetVisible Then .AddItem objSheet.Name    'wenn Blatt sichtbar, dann Blattname in Listbox schreiben
Next objSheet                                                           'nächstes Blatt
End With
Hiermit kannst du alle (eingeblendeten) Blätter automatisch in die Listbox schreiben lassen, wenn auch versteckte rein sollen, reicht in der 4. Zeile

.AddItem objSheet.Name
Hiermit kommst du bei Auswahl eines Eintrages sofort auf das Blatt:

Private Sub ListBox1_Change()
Dim Listenwert As Long                                              'zur Ermittlung, welcher Wert ausgewählt wurde
For Listenwert = 0 To ListBox1.ListCount - 1                    'Schleife für alle Inhalte
If ListBox1.Selected(Listenwert) Then                       'Wenn ein Wert ausgewählt
Worksheets(Listenwert + 1).Select                       'dann dieses Blatt anwählen
End If
Next Listenwert                                                 'nächster Wert
End Sub
Müsstest du noch in deiner Userform integrieren, ohne Userform (also direkt mit Listbox auf einem Tabellenblatt) klappt es.
Evtl. Brauchst du das

+ 1
nicht, das habe ich nicht getestet.
Gruß Pierre
Anzeige
AW: Listbox
06.12.2021 10:46:13
Gerd
Hallo Pierre,
danke....das hat super geklappt :)
bitteschön (und sorry@all wg. 500fach Post...)
06.12.2021 11:23:38
Pierre

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige