Kombinierte Comboboxen mit verschieden Datenspalten ansprechen/ablegen
#1
Hallo @all,
auch wenn es nur wenige VBA Helfer/innen geben mag, ich versuch's trotzdem.
Überfliegen des hier angezeigten Textes nicht gewünscht :05: :17:
In der angefügten Datei habe ich das Problem, das wenn die ein oder andere Spaltenauswahl getroffen wird, die Zuordnung zwar klappt aber das Verhalten nicht stimmt.

Wähle ich die Spalte 'Pflicht' in der 1sten Combobox und anschließend die 2te Combobox Reihenfolge der am Tisch Sitzenden, lässt die Hilfsspalte keinen Zweifel zu das hier was falsch läuft.

Wähle ich nun die Spalte 'Auswahl Ansage' in der 1sten Combobox, ist zu sehen das im Auswahlfeld Namen fehlen bzw. die Spalte AK angezeigt wird. Ebenso im Auswahlmodus 'Auswahl anders'.
Die weitere Auswahl findet unterdes in der Hilfsspalte AH statt, egal welche Spalte ich in der 2ten Combobox getätigt habe.

Bin VBA-Änfänger mein bisheriges Können beruht auf Raubkopien wie auch Eigeninitiative die meist fehlschlägt.
Welchen Fehler habe ich im Code gemacht oder anders geschrieben, was ist verkehrt verstanden/angewendet was fehlt?
Wie besser die Comboboxen verknüpfen, bzw. die Datenniederschrift optimieren?

.xlsm   cleverKegelmappe.xlsm (Größe: 37,43 KB / Downloads: 11)

Vorab bedanke ich mich für konstruktives Feedback.
Gruß
(>'I')> Samstag, 26. Juli 2014 1:22:00 PM <('I'<)
Top
#2
Hallo Frank,

das unterschiedliche Verhalten liegt an den Formeln in Verbindung welche Spalte Du befüllst AK oder eine der anderen.

Start
AGAHAIAJAK
1H.Sp.H.Sp.  xPflicht
2User 01  Pflichtx 
3User 02User 02Reihex 

verwendete Formeln
Zelle Formel Bereich
AG2 =WENN(ODER(ZÄHLENWENN(AK:AK;AD2);AD2="");"";AD2)
AH2 {=WENN(ZEILE($AD1)>SUMME(N(AG$2:AG$19<>""));"";INDIREKT("AO"&KKLEINSTE(WENN(AG$2:AG$19<>"";ZEILE($AD$2:$AN$19));ZEILE(AD1))))} $AH$2
AG3 =WENN(ODER(ZÄHLENWENN(AK:AK;AD3);AD3="");"";AD3)
AH3 {=WENN(ZEILE($AD2)>SUMME(N(AG$2:AG$19<>""));"";INDIREKT("AO"&KKLEINSTE(WENN(AG$2:AG$19<>"";ZEILE($AD$2:$AN$19));ZEILE(AD2))))} $AH$3
{} Matrixformel mit Strg+Umschalt+Enter abschließen
Matrixformeln sind durch geschweifte Klammern {} eingeschlossen
Diese Klammern nicht eingeben!!


definierte Namen
Name Bezieht sich auf Tabelle Z1S1-Formel
Aktive=Start!$AH$2:INDEX(Start!$AH$2:$AH$13;ANZAHL2(Start!$AH$2:$AH$13);1)Start=Start!Z2S34:INDEX(Start!Z2S34:Z13S34;ANZAHL2(Start!Z2S34:Z13S34);1)

Tabellendarstellung in Foren Version 5.51

Gruß Stefan
Win 10 / Office 2016
Top
#3
(26.07.2014, 15:30)Steffl schrieb: ...liegt an den Formeln in Verbindung welche Spalte Du befüllst AK oder eine der anderen.

Hallo Stefan, ganz ehrlich. Jetzt steh ich auf'm Schlauch und es qualmt ganz doll Huh

Danke für deine Hilfe, will mich da mal durchhangeln.
Top
#4
Hallo @all,
könnte mich dieses hier weiter bringen ?

mfg
Top
#5
Hallo Frank,
(26.07.2014, 15:55)WergibtmirRat schrieb: Jetzt steh ich auf'm Schlauch und es qualmt ganz doll Huh

will ich mal versuchen es zu erklären: Du wählst in der ersten Combobox die Auswahl 'Pflicht' aus. Hier wird die Spalte AK mit deinem ausgewählten Einträge der zweiten Combobox befüllt. Wenn Du jetzt den ersten Eintrag in der Spalte AK hast, werden die Spalten AG berechnet, wobei der Eintrag, der in der Zelle AK2 steht aus diesem Bereich AG2:AG13 entfernt wird. Wie die Formel im Bereich AH2:AH13 funktionieren kann ich leider nicht sagen, da ich nicht der Formel-Spezi bin.
Gruß Stefan
Win 10 / Office 2016
Top
#6
Hallo all,
zuerst:
Fehler in der Datei entdeckt
AH2:AH13
=WENN(ZEILE($AD1)>SUMME(N(AG$2:AG$19<>""));"";INDIREKT("AO"&KKLEINSTE(WENN(AG$2:AG$19<>"";ZEILE($AD$2:$AN$19));ZEILE(AD1))))
ist falsch, der Bezug muss die erste Hilfsspalte sein AG
Wie das ganze genau funktioniert, keine oder wenig Ahnung

Was aber wurmt, ist das die Auswahl der Combobox 1 in der ersten Spaltenauswahl hängen bleibt.
Sofern ein anderer Wert angezeigt wird, müsste doch eigentlich auch die angesprochene Spalte ausgewählt sein.
Hier liegt meine ich der Fehler, beim nochmaligen Durchspielen immer das gleiche Verhalten

mfg
Top
#7
Hallo Frank,

ich habe jetzt in Deine Excel-Datei geschaut und entdecke auf keinem Blatt in AH2 diese Formel Huh
Du könntest Deine Comboboxen aber auch mit VBA füllen und nicht über die Zuweisung von Bereichen.

Was soll eigentlich geschehen, wenn Du den ersten user ausgewählt hast? Wann soll der nächste erscheinen? Ich habe jetzt nur die Änderung aus Deinem letzten Beitrag eingegeben. Damit erscheint in der Auswahl nur der user01.
Dann hab ich mal von Hand in Zeile 2 in den anderen "Ansagen" den user01 gewählt, trotzdem tut sich nix in Spalte AK und somit gibt's auch keine andere Auswahl in der Combobox.

Eine Formellösung für abhängige Dropdowns habe ich in unserem Beispielbereich.
http://www.clever-excel-forum.de/Thread-...-Dropdowns
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#8
Hallo schauan
(27.07.2014, 08:04)schauan schrieb: ...geschaut und entdecke auf keinem Blatt in AH2 diese Formel...
Tatsächlich existiert diese in AH2 bis AH13 runterkopiert (Matrixformel)

Zitat:Was soll eigentlich geschehen, wenn Du den ersten user ausgewählt hast
Beginne ich mit der Auswahl "Pflicht", soll mit der Auswahl der Kegler die Wurfpositionen (Pos. 1; Pos. 2; ...) getroffen werden.
Ich nenne diesen Bereich [AG2 : AH13] mal "Ausschlussverfahren". Schon in der Spalte [AK2 : AK13] stehende sollen im Bereich Ausschlussverfahren entfernt werden, damit nur Nichtgewählte dort weiter zur Verfügung stehen.
Apropos: Jede Auswahl ist anschließend mit dem 'Bestätigen Button' zu ma­ni­fes­tie­ren in den Zellen AK2 bis AK13.

Zitat:Wann soll der nächste erscheinen?
Person für Person soll nun wie beim ersten Durchgang in der Combobox 'aktive Kegler' gewählt werden dann mit Bestätigen auch hinzugefügt werden.

Zitat:Dann hab ich mal von Hand in Zeile 2 in den anderen "Ansagen" den user01 gewählt, trotzdem tut sich nix in Spalte AK und somit gibt's auch keine andere Auswahl in der Combobox.
Da hinkt die Prozedur ja eben. Wähle ich nun Auswahl Ansage und klicke auf Cbo aktive Kegler erscheint hier weiterhin die Auswahlliste der Spalte AG, obwohl in den Spalten AO und AP der gewählte entnommen, in Spalte AQ hinzugefügt.
Genauso kann man doppelte anlegen in den Spalten AQ und AW. Mist, ganz großer SCh....


Zitat:...könntest Deine Comboboxen aber auch mit VBA füllen und nicht über die Zuweisung...
Mein Wissen über VBA ist noch zu gering, sowas zu realisieren, deswegen bitte ich hier um Hilfe.


Danke André für deinen letzten Beitrag.

mit einem ganz herzlichen Gruß, an den oder die Helfer/innen
Top
#9
Hallo Frank,

hier wäre ein Beispiel zum Füllen einer Listbox mit einer Bedingung. Ich habe einfach die Daten aus A1 bis A10 übernommen - sofern etwas drin steht.
Du kannst dort natürlich beliebige Bedingungen einprogrammieren, VBA setzt das entsprechend um. Du könntest bei Programmierung die Bedingungen, die Du in Deinen Excel-Formeln verwendest, umsetzen und hast die Daten so direkt übernommen.

Code:
Private Sub UserForm_Initialize()
For i = 1 To 10
    If Cells(i, 1) <> "" Then
        Me.ListBox1.AddItem Cells(i, 1).Value
    End If
Next
End Sub


übrigens stimmt wohl Deine Bezeichnung hier nicht
Cbo_01_Aw_Kegler_Change
so ein Objekt gibt es nicht ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#10
Hallo Frank,

im code zum Ändern der Combobox sind noch zwei Fehler drin. Zum einen ein falscher Name für die andere Combobox, und dann hatt die 'nen RowSourse und keinen ListFillRange...
So könnte es passen:

Code:
Private Sub Cbo01_Pflichtausw_Change()
If Cbo01_Pflichtausw = "Pflicht" Then
    Cbo01_Keglerausw.RowSource = ("AH2:AH13")
End If
If Cbo01_Pflichtausw = "Auswahl Ansage" Then
    Cbo01_Keglerausw.RowSource = ("AP2:AP13")
End If
If Cbo01_Pflichtausw = "Auswahl anders" Then
    Cbo01_Keglerausw.RowSource = ("AV2:AV13")
End If
End Sub


Die Auswahl "Reihe" bei der Spieleauswahl gibt es übrigens auch nicht in Deiner Tabelle ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste