Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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

Auswahl Listbox (Formularsteuerelement)

Auswahl Listbox (Formularsteuerelement)
08.11.2023 17:49:30
Stefe
Hallo @ all,

auf dem Blatt "Auswahl_AB" befinden sich 2 Listboxen (Formularsteuerelemente) mit den Namen Auswahl_A / Auswahl_B).
Desweiteren gibt es noch jeweils 2 Buttons (Formen) zum Bestätigen der jeweiligen Auswahl in Auswahl A oder B.
Je nachdem was ausgewählt und der Button (Form) betätigt wurde soll sich nun das entsprechende Blatt öffnen.
Konnte es mit der Formatierung Zellverknüpfung und Formeln lösen.
Würde es aber gerne in VBA lösen ohne in eine Zelle schreiben und die Formeln verwenden zu müssen.

Danke schonmal für eure Unterstützung

MFG

Bsp.Datei
https://www.herber.de/bbs/user/164128.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Auswahl Listbox (Formularsteuerelement)
13.11.2023 18:17:37
Stefe
Auch ne Variante,Danke Herbert
AW: Auswahl Listbox (Formularsteuerelement)
11.11.2023 13:48:05
GerdL
Hallo Steve,

bezogen auf deine (erste) Datei.
Sub AbgerundetesRechteck3_Klicken()


With Sheets("Auswahl A_B").Shapes("Auswahl_A").ControlFormat
If .ListIndex > 0 Then Sheets(.List(.ListIndex)).Activate
End With

End Sub


Sub AbgerundetesRechteck6_Klicken()


With Sheets("Auswahl A_B").Shapes("Auswahl_B").ControlFormat
If .ListIndex > 0 Then Sheets(.List(.ListIndex)).Activate
End With

End Sub

Gruß Gerd
Anzeige
AW: Auswahl Listbox (Formularsteuerelement)
13.11.2023 18:22:17
Stefe
Dat ises, Danke GerdL

MfG
AW: Auswahl Listbox (Formularsteuerelement)
09.11.2023 10:31:28
Stefe
Danke Alwin, funktioniert.

Optimierungsfrage:
Wenn Blätter umbenannt und die Einträge in den jeweiligen Listojects angepasst werden funktioniert es natürlich nicht mehr.
Kann man das irgendwie hinbekommen?
Dann ist man nicht Starr an A oder B gebunden.

MfG
AW: Auswahl Listbox (Formularsteuerelement)
09.11.2023 14:58:06
Alwin Weisangler
Hallo,

das ist auch ganz einfach. Weise die Namen einem Array zu.
z.B. so:


Dim arr(): arr = Array("Links Peter", "Links Max", "Links Alf")

Da 1 / 2 / 3 als Wert in die Zelle ausgegeben wird und Zellnummern des Array 0 / 1 / 2 sind, wird das Array mit -1 abgefragt:


Dim i&: i = Tabelle1.Cells(5, 2)
Sheets(arr(i - 1)).Select


vollständig dann so:


Option Explicit

Sub SteuerungA()
Dim arr(): arr = Array("Links Peter", "Links Max", "Links Alf")
Dim i&: i = Tabelle1.Cells(5, 2)
Sheets(arr(i - 1)).Select
End Sub

Sub SteuerungB()
Dim arr(): arr = Array("Rechts Ella", "Rechts Mia", "Rechts Thea")
Dim i&: i = Tabelle1.Cells(5, 4)
Sheets(arr(i - 1)).Select
End Sub

Tabellenblätter müssen natürlich auch so benannt sein, wie es im jeweiligen Array steht.

Gruß Uwe
Anzeige
AW: Auswahl Listbox (Formularsteuerelement)
09.11.2023 19:37:32
Stefe
Hey Uwe,

danke für die Erklärungen zum Ablauf, das hilft ungemein!

Habe den Code ausprobiert aber es tritt immer Laufzeitfehler9 in Zeile Sheets(arr(i - 1)).Select auf.
Blätter und Einträge in den Listobjects habe ich so wie im Array steht umbenannt.

Meinte mit nicht Starr das man zb. Rechts Thea auswählt und das entsprechende Blatt geöffnet wird, ohne das man die ganzen Blattnamen im Code auflisten muss.
Wenn mehrere Blätter vorhanden sind wird es da recht mühselig.

Wenn das möglich ist wäre es dann nur von den Listobjects Einträgen die die Listboxen befüllen und den Blattnamen abhängig.
Dann bräuchte man nicht jedes mal den Code zu ändern sondern nur den jeweiligen Blattnamen und den Eintrag im jeweiligen Listobject.

MFG
Anzeige
AW: Auswahl Listbox (Formularsteuerelement)
09.11.2023 20:21:05
Alwin Weisangler
Hallo,

Das Formularsteuerelement hat einen Rückgabewert, welcher in eine Zelle hinter diesem eingetragen wird. Dieser Rückgabewert ist wie ein Listindex nur er beginnt nicht bei 0 sondern bei 1.
Das bedeutet, dass Oberster Eintrag markiert --> schreibt eine 1 in die Zelle, 2. Wert eine 2 und 3. Wert eine 3.

Die 1. Zelle des Arrays wird mit arr(0) als i-1 aufgerufen, die 2. Zelle arr(1) und die 3. Zelle mit arr(2).
Der Wert der ausgelesenen Zelle des Arrays ist der Tabellenblattname.

Das Formularsteuerelement ist ein Listenfeld, welches funktional nicht mit einer Active-X Listbox oder einer Listbox in einer Userform vergleichbar ist.
Dieses Formularsteuerelement kann nur eine Zahl/Zähler (Zeilennummer des markierten Eintrags) ausgeben.
Anbei die Datei
https://www.herber.de/bbs/user/164163.xlsm

Gruß Uwe

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige