Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
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 mit CheckBox bei Auswahl Page anzeigen

ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 16:51:49
Andreas
Hallo Excelfreunde,
Will mal mein Anliegen so erklären:
Habe eine UserForm mit MultiPage (18 Seiten)
Habe eine ListBox2
mit Eigenschaft:
ListStyle = 1-fmListStyleOption
MultiSelect = 1-fmMultiSelectMult
eingestellt. Bewirkt also das die ListBox zusätzlich zu den ListBox Einträgen davor eine Checkbox mit angezeigt wird.
Jetzt möchte ich erreichen wenn ich einen Eintrag auswähle (bzw. auch mehrere Einträge auswähle) mir entsprechend der Auswahl die entsprechenden MultiPage Seiten bei Checkbox Haken gesetzt ein bzw. Haken nicht gesetzt wieder ausgeblendet werden.
Fall 1.zB.:
Ich wähle den 1.Eintrag (zB. "Freigaben") der Haken ist dann gesetzt (True)
jetzt soll die Page2, Page4 und Page5 im Register angezeigt werden.
Fall 2 zB.:
Ich wähle wieder den 1.Eintrag (zB. "Freigaben") und zusätzlich den 3.Eintrag (zB. "Einkauf") soll mir jetzt wieder Page2, Page4 und Page5 angezeigt werden Aber zusätzlich soll mir Anhand von 3.Eintrag (zB. "Einkauf") die Page6 und Page7 mit angezeigt werden.
Dies soll jetzt mit allen Einträgen in der ListBox2 so erfolgen wenn der entsprechende Eintrag gewählt wird, soll demzufolge Anhand die entsprechende Page mit angezeigt oder wieder entfernt werden.
Ich hoffe ich habe mich ein wenig verständlich zu meinem Anliegen ausgedrückt.
Zur Zeit bewerkstellige ich dies so:
Ich wähle in der normalen ListBox ohne vorher in den Eigenschaften etwas geändert zu haben (Normale ListBox mit Einträgen)
einen Eintrag in der ListBox aus und die im Code hinterlegte Page wird mir angezeigt.
der Code von mir dazu sieht so aus:
Private Sub ListBox2_change()
If ListBox2.Text = "Start" Then
MultiPage1.Value = 0
End If
If ListBox2.Text = "Allgemeine Projektinformation" Then
MultiPage1.Value = 1
End If
If ListBox2.Text = "Kaufm?nnische Information" Then
MultiPage1.Value = 1
End If
If ListBox2.Text = "Terminplanverwaltung" Then
MultiPage1.Value = 1
End If
If ListBox2.Text = "Ma?nahmenkurzbeschreibung" Then
MultiPage1.Value = 1
End If
If ListBox2.Text = "Planrechtsverfahren" Then
MultiPage1.Value = 2
End If
If ListBox2.Text = "Baukommunikation" Then
MultiPage1.Value = 2
End If
If ListBox2.Text = "Freigaben" Then
MultiPage1.Value = 2
End If
If ListBox2.Text = "Projekt?bergaben" Then
MultiPage1.Value = 2
End If
If ListBox2.Text = "Baubetriebliche Planung" Then
MultiPage1.Value = 3
End If
If ListBox2.Text = "Sekund?re Bau?berwachung" Then
MultiPage1.Value = 3
End If
If ListBox2.Text = "IBN Verantwortlicher" Then
MultiPage1.Value = 3
End If
If ListBox2.Text = "Vermessung DB Netz" Then
MultiPage1.Value = 7
End If
If ListBox2.Text = "KT Leistungen" Then
MultiPage1.Value = 8
End If
If ListBox2.Text = "DB E&C Planungsleistungen" Then
MultiPage1.Value = 4
End If
If ListBox2.Text = "DB E&C Pr?fleistungen" Then
MultiPage1.Value = 4
End If
'usw. ………
End Sub

Ich hätte da schon einen kleinen Ansatz wie ich das in der ListBox anstellen könnte komme aber nicht weiter
Code Ansatz den ich auch dazu gefunden habe:
For i=0 To Me.List2.ListCount
If Me.List2.Selected(i) Then …
Next i
weiß aber nicht wo ich den Einbauen muss und wie er weiter aussehen muß das er für mein Anlegen funktioniert.
Kann mir einer dazu eine Lösung sagen und den Code dafür vervollständigen?
Wäre für die Hilfe sehr dankbar, weil ich einfach nicht weiterkomme.
Mit besten Grüßen und Dank im voraus für Eure Hilfe und Bemühungen
Gruß Andreas

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 17:08:37
Hajo_Zi
Hallo Andreas
an der Stelle
"'usw. ………"
Ich konnte das nicht testen da ich nicht augf fremde Rechner schaue.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 17:27:05
Nepumuk
Hallo Andreas,
würde ist so machen:
With List2
    For i = 0 To .ListCount - 1
        If .Selected(i) Then
            Select Case .List(i)
                Case "Start"
                    MultiPage1.Value = 0
                Case "Allgemeine Projektinformation", "Kaufmännische Information"....
                    MultiPage1.Value = 1
                    
                    usw.
                    
            End Select
        End If
    Next i
End With

Gruß
Nepumuk
Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 18:52:28
Andreas
Hallo Nepumuk,
vielen Dank erst einmal für deine schnelle Hilfe
Private Sub ListBox2_change()
With List2
For i = 0 To .ListCount - 1
If .Selected(i) Then
Select Case .List(i)
Case "Start"
MultiPage1.Value = 0
Case "Allgemeine Projektinformation", "Kaufm?nnische Information", "Einkauf", " _
Freigaben"
MultiPage1.Value = 1
Case "Planrechtsverfahren", "Baukommunikation"
MultiPage1.Value = 2
'usw.
End Select
End If
Next i
End With
End Sub
Habe Deinen Code mal so eingefügt und umgeschrieben,
Das Problem ist wenn ich jetzt einen Eintrag aus der ListBox2 auswähle meckert er mir in der CodeZeile List2 (Variable nicht definiert)
habe dann mal aus List2 ListBox2 gemacht. Dann meckert er mir in der Zeile For i (Variable nicht definiert)
was mache ich falsch? Ist der Code im Programm der entsprechenden UserForm unter ListBox2
auch richtig plaziert? wenn nein wo muss erdann hin. Brauch nochmals Hilfe dazu
Vielen Dank
Gruß Andreas
Anzeige
Variable nicht definiert)-dann definiere sie...
07.09.2019 19:03:38
robert
zB: Dim i as Long
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 19:09:33
Nepumuk
Hallo Andreas,
ich habe extra meine ListBox umbenannt da sie in deiner gezeigten Prozedur List2 hieß. Und dein i war auch nicht deklariert. Also,
Private Sub ListBox2_Change()
    Dim lngIndex As Long
    With ListBox2
        For lngIndex = 0 To .ListCount - 1
            If .Selected(lngIndex) Then
                Select Case .List(lngIndex, 0)
                    Case "Start"
                        MultiPage1.Value = 0
                    Case "Allgemeine Projektinformation", "Kaufmännische Information"
                        MultiPage1.Value = 1
                        
                        ' usw.
                        
                End Select
            End If
        Next
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 19:30:49
Andreas
Hallo Nepumuk,
Danke nochmals für Deine schnelle Hilfe.
Jetzt funktioniert es erst einmal ohne Fehlermeldung.
Was jetzt aber passiert,
ist wenn ich jetzt einen Eintrag anklicke werden die Page auch Ein bzw. Ausgeblendet (das ist ja auch so gewollt)
Jedoch springt er mir sofort bei der Auswahl auf die Page die auch zuerst ausgewählt wurde.
(dies ist nicht ganz so gewollt)
Ich möchte ja erreichen das ich in der ListBox mehrere Einträge auswählen kann und die PageSeiten mir diesbezüglich zusammengestell werden.
Hintergrund ist der:
Der Anwender soll im Vorfeld die erforderlichen Einträge aus der ListBox auswählen können die er für seine weitere Bearbeitung benötigt.
Dann kann er durch die Page blättern die nur für ihn relevant sind und die anderen PageSeiten für Ihn ausgeblendet bleiben.
Weil es doch sehr viele Seiten gibt die nicht immer für die weitere Bearbeitung benötigt werden.
Ist das so verständlicher erklärt
Bitte nochmals um Hilfe
liebe Grüße und danke
Andreas
Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 19:33:49
Andreas
Hallo Nepumuk,
Danke nochmals für Deine schnelle Hilfe.
Private Sub ListBox2_Change()
Dim lngIndex As Long
With ListBox2
For lngIndex = 0 To .ListCount - 1
If .Selected(lngIndex) Then
Select Case .List(lngIndex, 0)
Case "Start"
MultiPage1.Value = 0
Case "Allgemeine Projektinformation", "Kaufmännische Information"
MultiPage1.Value = 1
' usw.
End Select
End If
Next
End With
End Sub
Jetzt funktioniert es erst einmal ohne Fehlermeldung.
Was jetzt aber passiert,
ist wenn ich jetzt einen Eintrag anklicke werden die Page auch Ein bzw. Ausgeblendet (das ist ja auch so gewollt)
Jedoch springt er mir sofort bei der Auswahl auf die Page die auch zuerst ausgewählt wurde.
(dies ist nicht ganz so gewollt)
Ich möchte ja erreichen das ich in der ListBox mehrere Einträge auswählen kann und die PageSeiten mir diesbezüglich zusammengestell werden.
Hintergrund ist der:
Der Anwender soll im Vorfeld die erforderlichen Einträge aus der ListBox auswählen können die er für seine weitere Bearbeitung benötigt.
Dann kann er durch die Page blättern die nur für ihn relevant sind und die anderen PageSeiten für Ihn ausgeblendet bleiben.
Weil es doch sehr viele Seiten gibt die nicht immer für die weitere Bearbeitung benötigt werden.
Ist das so verständlicher erklärt
Bitte nochmals um Hilfe
liebe Grüße und danke
Andreas
Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 19:39:17
Nepumuk
Hallo Andreas,
und wie hast du dir vorgestellt dass das laufen soll? Per Button per ? … oder soll Excel erraten wann du mit deiner Auswahl fertig bist? :)
Gruß
Nepumuk
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 20:00:21
Andreas
Hallo Nepumuk,
ja das könnte man auch über einen CommandButton realisieren.
Ich dachte nur wenn Excel in der Auswahl einer "ListBox mit Checkbox"
diese Option zur Verfügung stellt das es da eine Möglichkeit gebe.
Aber du hast recht
wenn ich jetzt so überlege, wie soll Excel wissen wann ich bei der Auswahl fertig bin
Sorry mein Denkfehler
Wie müsste ich das dann auf einen CommandButton legen?
Wo ich den Plaziere weiß ich. aber das das ListBox2_Change Ereignis auch ausgelöst wird.
Oder muss ich das dann in ein ListBox_Click Ereignis schreiben?
Danke nochmals Gruß Andreas
Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 20:08:25
Nepumuk
Hallo Andreas,
kopiere den Code der ListBox in das Click-Event des Buttons und lösch das Change-Event der ListBox.
Gruß
Nepumuk
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
08.09.2019 09:01:50
Andreas
Hallo Nepumuk,
Sorry das ich gestern Abend nicht nochmal geantwortet habe,
habe Deinen Vorschlag genau so ungesetzt (aber das gleiche wie vorher) Die PageSeiten werden nicht nach Auswahl Ein bzw. Ausgeblendet
Deswegen ist mein Anliegen noch immer nicht gelöst.
Wie gesagt möchte ich erreichen wenn entsprechend der Auswahl aus der Listbox2 die entsprechenden Page Seiten (Haken gesetzt "soll zugehörige PageSeite oben im Register sichtbar sein" Haken NICHT gesetzt "soll zugehörige PageSeite oben im Register wieder ausgeblendet sein")
Es soll dabei nicht bei betätigen des CommanButton auf eine Page gesprungen werden,
sondern auf der Page "Start" geblieben werden
Aber jetzt... (das was ich ja erreichen will) ...nur DIE PageSeiten im Register angezeigt werden die ich in der ListBox2 durch Auswahl "Haken gesetzt" gewählt habe.
Wenn also in der ListBox2 kein Haken gesetzt wurde sollen demzufolge ALLE PageSeiten im Register angezeigt werden.
Das mit dem CommandButton habe ich so umgesetzt. Leider aber nicht der gewünschte Erfolg
Private Sub CommandButton72_Click()
Dim lngIndex As Long
With frmRessourcenliste.ListBox2
For lngIndex = 0 To .ListCount - 1
If .Selected(lngIndex) Then
Select Case .List(lngIndex, 0)
Case "Start"
MultiPage1.Value = 0
'wenn Haken gesetzt dann Page einblenden
'wenn Haken wieder entfernt dann Page ausblenden
Case "Allgemeine Projektinformation", "Kaufm?nnische Information", " _
Terminplanverwaltung", "Ma?nahmenkurzbeschreibung"
MultiPage1.Value = 1
'wenn Haken gesetzt dann Page einblenden
'wenn Haken wieder entfernt dann Page ausblenden
Case "Planrechtsverfahren", "Baukommunikation", "Freigaben", "Projekt? _
bergaben"
MultiPage1.Value = 2
Case "Baubetriebliche Planung", "Sekund?re Bau?berwachung", "IBN  _
Veranrwortlicher"
MultiPage1.Value = 3
Case "Vermessung DB Netz"
MultiPage1.Value = 7
Case "KT Leistungen"
MultiPage1.Value = 8
Case "DB E&C Planungsleistungen", "DB E&C Pr?fleistungen"
MultiPage1.Value = 4
Case "Erstbegutachtung von Ing. Bauwerken", "DB Immobilien", " _
Projekteinstellung ELGV"
MultiPage1.Value = 5
Case "Einkauf"
MultiPage1.Value = 6
Case "Gewerk1"
MultiPage1.Value = 9
Case "Gewerk2"
MultiPage1.Value = 10
Case "Gewerk3"
MultiPage1.Value = 11
Case "Gewerk4"
MultiPage1.Value = 12
Case "Gewerk5"
MultiPage1.Value = 13
Case "Gewerk6"
MultiPage1.Value = 14
Case "Gewerk7"
MultiPage1.Value = 15
Case "Gewerk8"
MultiPage1.Value = 16
Case "Gewerk9"
MultiPage1.Value = 17
End Select
End If
Next
End With
End Sub

Bitte nochmals um Unterstützung und Eure Hilfe.
Vielleicht hat jemand von Euch doch noch eine Idee wie ich das lösen kann.
Komme selbst nach mühseligen Googeln im Netz nicht mehr weiter
Gruß Andreas
Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
08.09.2019 10:40:12
Matthias
MOin
Also in deinem Code springst du doch nur auf die Seite. Wenn du eine Page ausblenden willst, müsstest du die visible Eigenschaft der Page nehme. bspw. so
Me.MultiPage1.Pages(0).Visible = False
(blendet die 1. Seite aus).
Eine Page muss aber mindest eingeblendet bleiben.
Also würde ich sagen, an Stelle des .value auf .visible iVm der Nummer umstellen.
Ggf. vorher über alle pages gehen, die Einblenden und dann deinen Code von oben zum Überprüfen und ggf. ausblenden.
VG
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
08.09.2019 12:29:04
Andreas
Hallo Matthias,
habe Deinen Vorschlag jetzt so umgesetzt
'blendet je nach Auswahl aus ListBox2 die PageSeiten EIN
Private Sub CommandButton72_Click()
Dim lngIndex As Long
With frmRessourcenliste.ListBox2
For lngIndex = 0 To .ListCount - 1
If .Selected(lngIndex) Then
Select Case .List(lngIndex, 0)
Case "Start"
MultiPage1.Value = 0
Case "Allgemeine Projektinformation", "Kaufm?nnische Information", " _
Terminplanverwaltung", "Ma?nahmenkurzbeschreibung"
Me.MultiPage1.Pages(1).Visible = True
Case "Planrechtsverfahren", "Baukommunikation", "Freigaben", "Projekt? _
bergaben"
Me.MultiPage1.Pages(2).Visible = True
Case "Baubetriebliche Planung", "Sekund?re Bau?berwachung", "IBN  _
Veranrwortlicher"
Me.MultiPage1.Pages(3).Visible = True
Case "Vermessung DB Netz"
Me.MultiPage1.Pages(7).Visible = True
Case "KT Leistungen"
Me.MultiPage1.Pages(8).Visible = True
Case "DB E&C Planungsleistungen", "DB E&C Pr?fleistungen"
Me.MultiPage1.Pages(4).Visible = True
Case "Erstbegutachtung von Ing. Bauwerken", "DB Immobilien", " _
Projekteinstellung ELGV"
Me.MultiPage1.Pages(5).Visible = True
Case "Einkauf"
Me.MultiPage1.Pages(6).Visible = True
Case "Gewerk1"
Me.MultiPage1.Pages(9).Visible = True
Case "Gewerk2"
Me.MultiPage1.Pages(10).Visible = True
Case "Gewerk3"
Me.MultiPage1.Pages(11).Visible = True
Case "Gewerk4"
Me.MultiPage1.Pages(12).Visible = True
Case "Gewerk5"
Me.MultiPage1.Pages(13).Visible = True
Case "Gewerk6"
Me.MultiPage1.Pages(14).Visible = True
Case "Gewerk7"
Me.MultiPage1.Pages(15).Visible = True
Case "Gewerk8"
Me.MultiPage1.Pages(16).Visible = True
Case "Gewerk9"
Me.MultiPage1.Pages(17).Visible = True
End Select
End If
Next
End With
End Sub

'alle PageSeiten bis auf Seite "Start" ausblenden
Private Sub CommandButton73_Click()
Me.MultiPage1.Pages(1).Visible = False
Me.MultiPage1.Pages(2).Visible = False
Me.MultiPage1.Pages(3).Visible = False
Me.MultiPage1.Pages(7).Visible = False
Me.MultiPage1.Pages(8).Visible = False
Me.MultiPage1.Pages(4).Visible = False
Me.MultiPage1.Pages(5).Visible = False
Me.MultiPage1.Pages(6).Visible = False
Me.MultiPage1.Pages(9).Visible = False
Me.MultiPage1.Pages(10).Visible = False
Me.MultiPage1.Pages(11).Visible = False
Me.MultiPage1.Pages(12).Visible = False
Me.MultiPage1.Pages(13).Visible = False
Me.MultiPage1.Pages(14).Visible = False
Me.MultiPage1.Pages(15).Visible = False
Me.MultiPage1.Pages(16).Visible = False
Me.MultiPage1.Pages(17).Visible = False
das funktioniert jetzt in meinem Programm folgendermaßen:
Ich drücke den CommandButton73
jetzt werden alle PageSeiten bis auf die PageSeite "Start" ALLE ausgeblendet
ist soweit ok. und funktioniert auch super
Jetzt wähle ich in der ListBox2 verschiedene Einträge aus und klicke auf den CommandButton72
jetzt werden je nach Auswahl die PageSeiten auch wieder richtig eingeblendet.
ist soweit auch ok. und funktioniert bestens.
Was ich aber unschön finde ist, wenn ich jetzt eine Auswahl aus der ListBox2 wieder entferne  _
passiert
nichts mehr (dort wo ich in der ListBox wieder den Haken entfernt habe) es sollte dann sein das  _
die  Ansicht im Reiter mit den PageSeiten wieder dementsprechend angepasst wird.
Das kann ich zwar auch machen indem ich den CommandButton73 einmal wieder klicke und danach  _
anschließend den CommandButton72 wieder klicke.
dann funktioniert das ganze auch.
Aber damit es nicht für den Anwender unnötig umständlich wird wenn er eine Auswahl nochmals  _
korrigieren
möchte beide CommandButton zu drücken,
würde ich gern zB. die CodeAnweisung "Call CommandButton73"
in den Programmcode 

Private Sub CommandButton72_Click()
am Anfang mit integrieren.
Ziel wäre nach meiner Vorstellung:
die Ausführung des CommandButton73 (alle PageSeiten ausblenden)
in den Anfang des Codes für den Command Button72 zu stellen.
kriege ich aber mit der Anweisung Call CommandButton72
nicht integriert
habe es versucht nach der Dim Anweisung zu  integrieren und an verschiedenen Stellen im  _
Programmcode.
leider kein Erfolg
kann mir dazu vielleicht noch jemand eine Lösung dazu nennen?
Dann wäre das echt super

Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
08.09.2019 12:46:13
Nepumuk
Hallo Andreas,
so:
CommandButton73.Value = True

Gruß
Nepumuk
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
08.09.2019 13:14:03
Andreas
Hallo Nepumuk,
Habe jetzt deine CodeZeile nach der Dim Deklaration im Sub CommandButton72_Click() eingefügt.
Programm getestet.
läuft super perfekt. recht herzlichen Dank
Danke nochmals auch an alle Helfer hier im Forum die mich bei der Umsetzung meines Anliegens sehr
unterstützt haben.
Anmerkung an Hajo: mit der genialen Hilfestellung
****
Hallo Andreas
an der Stelle
"'usw. ………"
Ich konnte das nicht testen da ich nicht augf fremde Rechner schaue.
****
Meine Meinung dazu:
mit so einer Aussage hilft man keinen hier im Forum. Alle die hier eine Frage stellen und Hilfe benötigen möchten einfach nur eine Lösung zu ihrem Anliegen haben.
Solche Sprüche und ähnliches von Hajo habe ich auf Fragen von anderen Forumsteilnehmern des
Öfteren schon gelesen. Finde ich persönlich nicht so gut.
Wenn einer nicht helfen will dann braucht er es auch meines Erachtens nicht zu tun.
Auch Hajo wird nicht gezwungen zu helfen. Was will er damit beweisen?
Vielleicht kann mir Hajo dazu eine Antwort geben.
Vielleicht?
An alle anderen hier im Forum noch ein schönes Wochenende
Gruß Andreas
Anzeige
AW: ListBox mit CheckBox bei Auswahl Page anzeigen
07.09.2019 19:11:46
Andreas
Hallo Robert,
habe deinen Rat befolgt und umgesetzt,
leider immer noch kein Erfolg
Private Sub ListBox2_change()
Dim i As Long
With List2
For i = 0 To .ListCount - 1
If .Selected(i) Then
Select Case .List(i)
Case "Start"
MultiPage1.Value = 0
Case "Allgemeine Projektinformation", "Kaufmännische Information", "Einkauf", " _
Freigaben"
MultiPage1.Value = 1
Case "Planrechtsverfahren", "Baukommunikation"
MultiPage1.Value = 2
'usw.
End Select
End If
Next i
End With
End Sub
funktioniert leider auch nicht
das gleiche Problem und auch die gleiche Fehlermeldung
Hilfe noch erwünscht
Gruß Andreas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige