BUG ? Dropdown-Liste der Datenvalidierung
29.04.2009 10:25:13
Markus
mir ist ein seltsames Verhalten im Zusammenhang mit der Datenvalidierung ("Daten - Gültigkeit ...") aufgefallen. Durch einen VBA-Code kann die die Funktion killen. Seit Tagen bastel ich schon an einem Sheet, bei dem die Validierungsfunktion erforderlich ist. Plötzlich funktionierte diese nicht mehr, d.h. die Dropdown-Liste erschien einfach nicht mehr ! Es war aber nicht die Einstellung "Alle Objekte anzeigen" unter "Extras - Ansicht".
Folgendes habe ich gemacht:
Ich habe mit div. OLE-Objekten rumgebastelt und mir zwecks Bereinigung eine Funktion gebastelt, die mir
alle Buttons, Combos, Shapes, Combos, usw. löscht, die z.B. den Namen "Picture xyz", "Button xyz" oder "Drop Down xyz" haben, also den von Excel vergebenen Namen mit einer zufälligen bzw. aufsteigenden Nummer.
Beispiel-Codeauszug für die Dropdown-Elemente:
Dim s As Shape
For Each s In ThisWorkbook.Sheets("Tabelle1").Shapes
If Left(s.Name, 9) = "Drop Down" Then
s.Delete
Next
Der Bereinigungslauf löscht damit alle Objekte, die nicht von mir mit einem speziellen Namen versehen wurden, z.B. Buttons mit Name "ClearBtn" oder "NewJobBtn", usw.
Zur Gültigkeitsprüfung (Validierung):
Die Validierung richtet je Sheet ein Shape mit Name "Drop Down xyz", d.h. mit einer zufälligen Nummer ein.
Wird jetzt aber der oben beschriebene Bereinigungslauf gestartet, wird damit auch die Komponente der Validierung gelöscht. Das wäre ja nicht schlimm. Nur funktioniert diese anschließend auf dem Sheet NIE mehr. Andere Sheets sind dann nicht betroffen, weil die Löschung ja nur auf dem angegebenen Sheet erfolgte.
Klar, man könnte jetzt sagen: "Dann lösch sie halt nicht !". Nur in meinem speziellen Fall möchte ich die
vom Anwender reingebrachten Elemente bereinigen. Mit etwas Umstand habe ich das auch schon erledigt. Worum es mir geht ist ja: Wie kann ich die Funktion trotzdem wieder gangbar machen ? Es muß ja ein Trick hinter dem speziellen Validierungs-Dropdown stecken ?
Das Beispielsheet lade ich euch auch mal hoch ....
Irgend welche Ideen dazu ?
Grüße
Markus Deuter