Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Dropdown aus String generieren
#1
Guten Tag und vielen Dank schon einmal für eure Hilfe,

Nun zu meinem eigentlichen Problem:

Ich muss regelmäßig einer  Nummer Objekte zuordnen. Jeder Nummer können dabei mehrere Orbjekte zugeordnet werden (bzw. mehreren Objekte mehrere Nummern) und ich habe eine Tabelle in  der alle Objekte-Nummernkombinationen vorhanden sind.
Mein Ziel ist, dass ich nach Eingabe meiner Nummer in das vorgesehen Feld ein Programm durchlaufen lasse, welches mir eine  Dropdownliste erstellt in der ich aus allen möglichen Kartons auswählen kann.

Dazu gehe ich bisher nacheinander alle Nummern aus meiner Tabellle(activesheet oder auch tabelle 2) durch (For each c...)  und vergleiche diese mit allen Nummern aus der Musterkombinationstabelle (objekt) bis ich die passenden Zellen gefunden haben (for each b..).  Wenn 2 Zellen den gleichen Wert aufweisen(if..), habe ich bisher den Wert der Zelle b in den String a geschrieben und zusätzliche Werte durch ein ; getrennt. Leider weiß ich nicht wie ich das Dropdownmenü aus dem String erzeuge, bzw ob ich mit dieser Idee ans Ziel komme.

Falls ihr Ideen habt wie ich das Problem löse oder vielleicht eine ganz anderen Ansatz habt, dann lasst es mich bitte wissen.

Danke euch. :)

Code:
Sub Makro3()



Dim b As Range

Dim c As Range


Dim a As String


  For Each c In ActiveSheet.Range("k10", "k15").Cells            

       For Each b In Sheets("objekt").Range("k10", "k15").Cells  

           If b.Value Like c.Value Then

               Sheets("objekt").Select

               a = a & ";"

               a = a & b.Offset(0, 6).Value

            Sheets("Tabelle2").Select

           End If

                With Selection.Validation

                   .Delete

                   .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _

                        xlBetween, Formula1:="a"

                   .IgnoreBlank = True

                   .InCellDropdown = True

                   .InputTitle = ""

                   .ErrorTitle = ""

                   .InputMessage = ""

                   .ErrorMessage = ""

                   .ShowInput = True

                   .ShowError = True

                End With

       Next

   Next      

End Sub

       
Antworten Top
#2
Zitat:habe ich bisher den Wert der Zelle b in den String a geschrieben und zusätzliche Werte durch ein ; getrennt. Leider weiß ich nicht wie ich das Dropdownmenü aus dem String erzeuge, bzw ob ich mit dieser Idee ans Ziel komme.
Moin!
Zunächst mal kommst Du so nicht ans Ziel, weil VBA in der Validation ein Komma als Trenner in der Liste erwartet.
Aber mal davon abgesehen:
Lade mal eine .xlsx hoch, so dass man Dir eher folgen und insofern sinnvoller helfen kann.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hallöchen,

nur mal ein anderer Ansatz Smile
Auf Excelformeln.de findest Du eine Lösung für Autofilter per Formel. Da kannst Du nach den Nummern filtern und die Objekte daneben packen und diesen Bereich als Liste für ein Dropdown nutzen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Hey,

entschuldigt meine späte Antwort. Ich habe im Anhang die datei hinterlegt mit eine datei hinterlegt in der das Makro hinterlegt ist und für das Problem Beispieldaten eingefügt sind.


Zitat:Hallöchen,

nur mal ein anderer Ansatz Smile
Auf Excelformeln.de findest Du eine Lösung für Autofilter per Formel. Da kannst Du nach den Nummern filtern und die Objekte daneben packen und diesen Bereich als Liste für ein Dropdown nutzen.

Ich habe es mir gerade angeschaut allerdings noch nicht ganz angeschaut, wie ich damit auf grundlage der Nummern und Obejkttabelle, ein Dropdown der entsprchenden Objekte passend zu jeder Nummer erzeugen kann. Ich werde es mri allerdings noch weiter anschauen und mal sehen ob ich damit weiterkomme. Danke auf jeden Fall schonmal für den Vorschlag.


Gruß
Richard


Angehängte Dateien
.xlsm   Objekte-Nummern.xlsm (Größe: 37,29 KB / Downloads: 0)
Antworten Top
#5
Hallöchen,

ich habe jetzt nicht in Deine Datei geschaut. Hier wäre mal das Prinzip. In Spalte A stehen die Nummern, in B die zugehörigen Objekte. In D wird die Liste in Anlehnung an die Autofilterformel erzeugt - das #ZAHL könnte man z.B. mit WENNFEHLER eliminieren. In E1 gibst Du dann eine Nummer ein - danach wird die Liste in D aufgebaut - , und in F1 hast Du ein Auswahlfeld, was sich auf D bezieht.

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFG
11A A 1A
21B B   
32A #ZAHL!   
43A #ZAHL!   
53B #ZAHL!   
63C #ZAHL!   

ZelleFormel
D1{=INDEX(B$1:B$99;KKLEINSTE(WENN((A$1:A$99=$F$1);ZEILE($1:$99));ZEILE(A1)))}
D2{=INDEX(B$1:B$99;KKLEINSTE(WENN((A$1:A$99=$F$1);ZEILE($1:$99));ZEILE(A2)))}
D3{=INDEX(A$1:A$99;KKLEINSTE(WENN((A$1:A$99=$F$1);ZEILE($1:$99));ZEILE(A3)))}
D4{=INDEX(A$1:A$99;KKLEINSTE(WENN((A$1:A$99=$F$1);ZEILE($1:$99));ZEILE(A4)))}
D5{=INDEX(A$1:A$99;KKLEINSTE(WENN((A$1:A$99=$F$1);ZEILE($1:$99));ZEILE(A5)))}
D6{=INDEX(A$1:A$99;KKLEINSTE(WENN((A$1:A$99=$F$1);ZEILE($1:$99));ZEILE(A6)))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.

ZelleGültigkeitstypOperatorWert1Wert2
G1Liste =D1:D6 
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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