Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Validierung auslesen

Validierung auslesen
Thomas
Hallo weltbestes Forum
kann mir jemand einen Tipp geben?
Ich möchte in einem Code die Validierung einer bestimmten Zelle auslesen, und diese Zelle in Abhängigkeit der Validierung farblich verändern.
Das heist ist für eine Zelle in einem bestimmten Bereich die Gültigkeit für eine bestimmte Liste festgelegt, dann möchte ich sie gelb färben und nicht sperren.
Wenn die Validierung nicht festgelegt ist, möchte ich die Zelle grau färben und sperren.
Ich finde keine Abfrage, die mir das entsprechende Ergebnis liefert.
Set a = Sheets("Konfigurator")
a.Range("B2").Validation.Type = 3 Then bringt einen Laufzeitfehler 1004 ...
Vielleicht kann mir jemand auf die Sprünge helfen?
Vielen Dank im Voraus
Gruß Thomas S.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Validierung auslesen
20.01.2012 17:00:06
Josef

Hallo Thomas,
ohne jetzt näher darüber nachzudenken
If  a.Range("B2").Validation.Type = 3 Then


« Gruß Sepp »

AW: Validierung auslesen
20.01.2012 18:12:14
Thomas
Hallo Sepp
zeigt bei mir immer 3 an ...
funktioniert bei mir nicht. Es gibt im Forum einige Lösungen mit for all ...
Leider kann ich das nie nachvollziehen.
Ich habe jetzt eine Workaround über eine Liste mit den Validierungen und darauf beziehe ich mich an anderer Stellen und färbe dann die Zellen etc.
Vielen Dank trotzdem für Deinen Tipp. Mal schauen, ob noch ein paar andere Vorschläge kommen.
VG Thomas S.
Anzeige
Validierung auslesen - Du meinst sicher so ...
21.01.2012 04:47:07
Luc:-?
…etwas, Thomas …
For Each xVal In a.UsedRange.SpecialCells(xlCellTypeAllValidation), wobei a zuvor auf das entsprd Sheets(index) gesetzt worden sein muss. Halte a aber nicht für gut (zu kurz und damit kaum aussagefähig).
Dabei gibt es folgende Probleme:
1. Es wdn auch unvalidierte Zellen als validiert angenommen.
2. VerbundZellen verursachen Fehler in den verborgenen Folgezellen.
Lösung:
1. Sind VZellen enthalten, wurden aber nicht validiert, müssen diese in der For Each-Schleife mit hier If xVal.MergeCells Then ohne weitere Aktion abgefangen wdn.
2. Sind validierte VZellen enthalten, darf nur deren 1.Zelle in die Abfrage einbezogen wdn, also nach der unter 1. genannten Abfrage muss die Aktion mit xVal.MergeArea.Cells(1) oder xVal.MergeArea(1) erfolgen. Ggf kann ersatzweise auch stets xVal.Cells(1) geschrieben wdn, da ja xVal As Range deklariert wdn muss.
Trifft das alles nicht zu, sollte Sepps Vorschlag fktionieren, wobei ich nicht 3 schreiben, sondern die vorgesehene und diesem Wert entsprd XlDVType-Enumerationsvariable xlValidateList benutzen würde → ist aussagekräftiger.
Damit wird aber nur eine der Vorgabe entsprd Zelle anvisiert. Was dann mit ihr geschehen soll, muss natürlich noch geschrieben wdn.
Gruß + schöWE, Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige