Unter xls 2003 (englisch) habe ich verschiedene Formulare erstellt, die über Text Box und Combo Box laufen. Über Blattschutz ist eingestellt, dass jeder nur direkt in den jeweiligen Boxen eintragen kann. Jedoch ist mein Problem, dass die Combo Box zwar wie gewünscht die entsprechenden Einträge hat - aber jeder user trotzdem nach belieben etwas ganz anderes dort eintragen kann.
Die Möglichkeit für einen Schreibschutz, so dass ausschliesslich eine Option aus dem drop-down menu gewählt werden kann, habe ich bisher nicht gefunden. Die einzige Möglichkeit, die ich bisher gesehen habe, ist eine Abwicklung über Listbox und validate - allerdings müsste ich da sämtliche Formulare komplett umstricken. Für die Combo Box muss es doch ebenfalls eine Möglichkeit geben?
Danke,
Robert
Die Möglichkeit für einen Schreibschutz, so dass
ausschliesslich eine Option aus dem drop-down menu gewählt
werden kann, habe ich bisher nicht gefunden. Die einzige
Möglichkeit, die ich bisher gesehen habe, ist eine Abwicklung
über Listbox und validate - allerdings müsste ich da sämtliche
Formulare komplett umstricken. Für die Combo Box muss es doch
ebenfalls eine Möglichkeit geben?
Hi Robert,
probier das mal, im Standardmodul Modul1
Public Merker, dann im Klassenmodul des Tabellenblattes:
Private Sub ComboBox1\_Change()
If Application.WorksheetFunction.CountIf(Tabelle2.Range("A1:A3"), ComboBox1.Value)
Gruß
Reinhard
Danke Reinhard,
das klappt wunderbar soweit. Allerdings bringt er die Fehlermeldung doppelt - sprich, ich muss 2x ok klicken, damit sie weg ist.
Ich habe das ganze mal auf meine Dateien angepasst (insgesamt 4 Combo Boxen in dem sheet):
Private Sub ComboBox2\_Change()
If Application.WorksheetFunction.CountIf(Sheet1.Range("K5:K52"), ComboBox2.Value)
Ist doch eigentlich da gleiche wie bei dir, aber warum kommt dann die Meldung doppelt?
Gruß
Robert
das klappt wunderbar soweit. Allerdings bringt er die
Fehlermeldung doppelt - sprich, ich muss 2x ok klicken, damit
sie weg ist.
Private Sub ComboBox2_Change()
If
Application.WorksheetFunction.CountIf(Sheet1.Range(„K5:K52“),
ComboBox2.Value)
Ist doch eigentlich da gleiche wie bei dir, aber warum kommt
dann die Meldung doppelt?
Hi Robert,
k.A., bei meinen Tests kam sie nur einmal.
Definiere in Modul1 ganz oben noch eine globale Variable:
Public NichtsMachen as Boolean
dann in Tabelle1:
Private Sub ComboBox2\_Change()
If Application.WorksheetFunction.CountIf(Sheet1.Range("K5:K52"), ComboBox2.Value)
Gruß
Reinhard
Danke, so funzt es ohne Probleme.
Gruß
Robert