Messmittel mit Auswahlmöglichkeit (VBA)

McKniffizen

Cadet 4th Year
Registriert
Nov. 2010
Beiträge
111
Hallo,

ich will eine Liste von Messmittel für unsere Techniker erstellen, bei der Mann ab der Zelle D3 mehrere Messmittel auswählen kann (im Tab Messmittel hinterlegt) und diese dann nicht mehr auswählbar sind wenn man ein Messmittel in D3 ausgewählt hat oder das ausgewählte Messmittel farbig wird.

Die Dropdownliste hätte ich ja noch hinbekommen, die Mehrfachauswahl leider wegen mangelnder Kenntnis in VBA nur noch nach langem suchen im Netz.

Die angehängte Datei hat schon ne VBA-Programmierung (in "Berechnung" mit Rechtsklick startet man), nur funktioniert da das Färben/Weglassen/Nicht auswählbar nicht für schon ausgewählte Messmittel.
Ich will alle Messmittel z. B. von Techniker 1 in Zelle D3 haben, die von Techniker 2 in D4 usw.
So wie es mit der Programmierung momentan geht, aber schon ausgewählte Messmittel, welche auch nur einmal verfügbar sind für alle Techniker sollten dann nicht mehr auswählbar sein.

Ich hoffe alles verständlich erklärt zu haben und danke schon einmal im Voraus :D

Gruß Mc
 

Anhänge

Wieso machst du es nicht so, dass wenn das Feld "Benötigte Messmittel" (ab D3) angeklickt wird, dass sich eine GUI mit der Mehrfachauswahl öffnet. Die gewählten Werte werden über ein Komma getrennt in das Feld geschrieben, über welches die GUI geöffnet wurde..

Sprich Beispielsweise:
-> D6 -> GUI -> 3 Werte gewählt -> OK -> D6 = "1, 2, 3"

Damit kein anderes Feld gewählt werden kann, kannst du eine Sperre auf das Dokument legen ;)

Ebenso kannst du auch beim erneuten klicken, den Wert auslesen und die Auswahl für diese Werte festlegen :)

Gruß
 
Die GUI habe ich ja schon drin (denke ich :D) und wenn ich die benötigten Messmittel auswähle werden diese auch in das ausgewählte Feld geschrieben.

Nur will ich bereits verwendete Messmittel nicht mehr verwenden dürfen im nächsten Feld, da die Messmittel nur begrenzt verfügbar sind.

Ich weiß nicht ob das Prinzi überhaupt klar ist:
Die Techniker brauchen (jeder Techniker für sich) jede Woche neue Messmittel bei unseren Kunden. Wenn ich z. B. HRA bei Techniker 1 in D3 ausgewählt habe, sollte es in D4 (für die restlichen Techniker) nicht mehr auswählbar sein oder es sollte farblich markiert sein oder ganz in der Listbox verschwinden.


Gruß
 
Verstehe!

Füge neben dem Reiter "Messmittel" folgende Formel hinzu:
Code:
=ZÄHLENWENN(Berechnung!D:D;"*"&A1&"*")
Zieh diese runter bis zur 34. Zeile. Deinen Code kannst du wahrscheinlich so anpassen, dass er schaut dass B1... 0 ist, sonst fügt er den Wert nicht hinzu.. Die Idee kam mit bei folgendem Code: http://computer.wer-weiss-was.de/tabellenkalkulation/zweispaltige-listbox-fuellen

Vielleicht kannst du ja etwas damit anfangen ;)

Gruß
 
Zuletzt bearbeitet:
Hmm das zeigt mir dann zwar 1er und 0en nebendran an, aber ist nicht die ideale Lösung denke ich, da ich da zu viel nachschauen muss was ich noch nehmen kann und was nicht.

Besser wäre es, wenn die Messmittel in der Listbox wie gesagt entweder verschwinden oder nicht mehr auswählbar sind, wenn ich sie in der Zelle oberhalb ausgewählt habe.
 
Die 0 zeigt nur an, dass es bisher nicht gewählt wurde, mittels dieser 0 kannst du die Werte filtern, die in die Liste aufgenommen werden sollen.
 
Klar, aber habe die ja trotzdem in der Auswahlliste noch aufgeführt und somit ist die Gefahr groß, dass ich es doppelt auswähle.
 
Warum nicht gleich so ;)

Nee Quatsch dank dir, funktioniert super!

Aber :) : Ich habe noch mehr Messmittel (bis Zeile A85 in Messmittel) und habe das im VBA angepasst (wie in der Datei zu sehen) aber es funktioniert nicht.
Entweder bin ich zu doof oder es hat was nicht gepasst :D

Warum funktioniert das bei dir und bei mir nicht? (für später, falls ich was hinzufügen muss)
Ergänzung ()

Ok hat irgendwie in deiner Vorlage dann doch geklappt :D

Dank dir nochmals vielmals!
 

Anhänge

Ja klar bitte!
Du kannst sonst per Schleife auch die Anzahl der Einträge abfragen, somit musst du den Code auch nicht ständig anpassen ;)
Sprich ungefähr so:

Set anzEintr = 0
For n = 1 To 5000 'Einfach nur, damit es weit genug nach unten gehen kann ;)
If wks.Range("A" & n) <> "" Then
anzEintr = anzEintr + 1
Else
n = 5000
End If
Next

With ListBox1
For n = 1 To anzEintr 'A1 bis x


So sollte es gehen, kannst ja etwas damit rumspielen ;)

Schöne Ostern sonst noch :)
 
Zurück
Oben