In Excel-VBA 6.5 ermitteln, ob Gültigkeitsprüfung

Hallo,

stehe gerade auf der Leitung:

Wie kann ich im ws_Change ermitteln, ob für eine Zelle, nennen wir sie Target, eine Gültigkeitsprüfung (Validation) per Listenauswahl eingerichtet ist?

Wenn ich nämlich die Eigenschaft

Target.Validation.InCellDropdown

prüfe, kommt bei allen Target ohne Gültigkeitsprüfung nicht „False“, sondern ein Fehler, und das ist schwer aufzufangen.

Gruß
smalbop

Grüezi Smallbob

Wie kann ich im ws_Change ermitteln, ob für eine Zelle, nennen
wir sie Target, eine Gültigkeitsprüfung (Validation) per
Listenauswahl eingerichtet ist?

Wenn ich nämlich die Eigenschaft

Target.Validation.InCellDropdown

prüfe, kommt bei allen Target ohne Gültigkeitsprüfung
nicht „False“, sondern ein Fehler, und das ist schwer
aufzufangen.

Stelle zuerst fest, ob in der Zelle überhaupt eine Gültigkeit eingerichtet ist und prüfe erst dann die weiteren Eigenschaften, wenn dies der Fall ist:

Private Sub Worksheet\_Change(ByVal Target As Range)
 If Not Intersect(Target, Cells.SpecialCells(xlCellTypeAllValidation)) Is Nothing Then
 MsgBox Target.Validation.InCellDropdown
 End If
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

OT Angabe der Vba-Version oder der Excelversion
Hallo Smalbop,

gib bitte die Excelversion an und nicht die Excel-Vba version.

Gruß
Reinhard

Salü Thomas,

und merci, sell isch’s gsi. Bin wieder unten von der Leitung…

Gruß

smalbop

Hallo Reinhard,

2003 SP 3.

Aber Thomas hat die Lösung schon genannt.

Trotzdem danke,

Gruß
smalbop

2003 SP 3.

Aber Thomas hat die Lösung schon genannt.

Hallo Smalbop,

es geht nicht um diese eine Lösung.
Vieles ist in Excel gleich, egal welche Version.
Aber auch einiges ist grundverschieden.

Wenn du im Autobrett eine Frage zu deinem Auto hast ist es doch auch sehr sehr angebracht Marke, Modell, Baujahr anzugeben…

Gruß
Reinhard