Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Prüfen, ob Gültigkeitsprüfung in Zelle vorhanden

Prüfen, ob Gültigkeitsprüfung in Zelle vorhanden
Adi
Hallo zusammen,
kann mit jemand sagen, wie ich per VBA abprüfen kann, ob in einer Zelle eine Gültigkeitsprüfung (Validation, eigentlich der Dropdown ein Liste) mittels Menüpunkt "Daten | Gültigkeit..." hinterlegt ist.
Danke im Voraus
Gruss
Adi
Anzeige
AW: Prüfen, ob Gültigkeitsprüfung in Zelle vorhanden
16.02.2006 19:44:42
K.Rola
Hallo,
hier ein Beispiel für InCellDropdown und Validationstyp Liste:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngValidation As Range
On Error GoTo ENDE
Set rngValidation = Cells.SpecialCells(xlCellTypeAllValidation)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, rngValidation) Is Nothing Then
If ActiveCell.Validation.InCellDropdown = True And _
ActiveCell.Validation.Type = 3 Then
Application.EnableEvents = False
'Statt der MsgBox hierhin schreiben, was dann passieren soll.
MsgBox "Dropdown!"
End If
End If
ENDE:
Application.EnableEvents = True
End Sub

Gruß K.Rola
Anzeige
Das ist doch der Unterschied...
16.02.2006 19:49:16
{Boris}
Hi Liebste,
ich hätte jetzt den Holzhammer rausgeholt :p
Option Explicit

Sub test()
Dim B As Boolean
On Error Resume Next
B = Range("B1").Validation.InCellDropdown
On Error GoTo 0
MsgBox IIf(B, "Vorhanden", "Nicht vorhanden")
End Sub

Gruß und Kuss
{Boris}
Anzeige
AW: Das ist doch der Unterschied...
16.02.2006 19:54:40
Uduuh
Hallo,
so ähnlich hatte ich es auch vor. Nur: Ist überhaupt eine Regel hinterlegt:

Sub test()
Dim x
On Error Resume Next
x = Selection.Validation.Type
On Error GoTo 0
If x = 0 Then MsgBox "keine Prüfung"
End Sub

Gruß aus’m Pott
Udo

Anzeige
AW: Das ist doch der Unterschied...
16.02.2006 20:19:47
K.Rola
Hi Boris, alter Charmeur,
da das dropdown default ist, dürfte immer "Vorhanden" gemeldet werden.
Es muss schon noch getestet werden, ob eine Prüfung stattfindet.
Gruß und dito,
K.Rola
Danke an Alle die geholfen haben
16.02.2006 20:58:14
Adi
Erst ggfs. einen Fehler provozieren und dann abprüfen, wollte ich verhindern.
Da aber Alle diese Schiene vorgeschlagen haben, gibt's wohl nix anderes.
Hat mir trotzdem sehr geholfen.
THX
Anzeige
AW: Danke an Alle die geholfen haben
16.02.2006 21:00:17
K.Rola
Hallo,
bei meinem Vorschlag wird kein Fehler provoziert, nur der Fall abgefangen, dass
es keine Zellen mit Gültigkeit gibt.
Gruß K.Rola
AW: Danke an Alle die geholfen haben
16.02.2006 22:03:43
Adi
Ups. Sorry.
Voll korrekt.
Hier wird kein Fehler provoziert.
Bei mir ist das Ergebnis 3 oder Empty. - Prüf' ich also gegen Empty.
10^3 Dank nochmals
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Gültigkeitsprüfung in Excel-Zellen überprüfen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob in einer Zelle eine Gültigkeitsprüfung (Validation) hinterlegt ist, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" klickst und "Einfügen" > "Modul" auswählst.

  3. Füge den folgenden Code in das Modul ein:

    Sub checkValidation()
       Dim hasValidation As Boolean
       On Error Resume Next
       hasValidation = Range("A1").Validation.Type
       On Error GoTo 0
       If hasValidation > 0 Then
           MsgBox "Gültigkeitsprüfung vorhanden."
       Else
           MsgBox "Keine Gültigkeitsprüfung vorhanden."
       End If
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um zu testen, ob eine Gültigkeitsprüfung in Zelle A1 vorhanden ist.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Die Methode 'Validation' für das Objekt 'Range' ist fehlgeschlagen."

    • Lösung: Stelle sicher, dass die Zelle, die Du überprüfst, tatsächlich eine Gültigkeitsprüfung hat. Falls nicht, wird dieser Fehler angezeigt.
  • Fehler: "Keine Rückmeldung."

    • Lösung: Überprüfe, ob das Makro richtig ausgeführt wird. Du kannst dazu Debugging verwenden, um den Code Schritt für Schritt zu durchlaufen.

Alternative Methoden

Wenn Du Excel ohne VBA verwenden möchtest, gibt es auch eine manuelle Methode zur Überprüfung der Gültigkeit:

  1. Wähle die Zelle aus, die Du überprüfen möchtest.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wenn die Option "Zulassen" eine Auswahl hat, ist eine Gültigkeitsprüfung vorhanden.

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Gültigkeitsprüfung in Excel testen kannst:

  • Dropdown-Liste erstellen:

    • Erstelle eine Dropdown-Liste in Zelle B1 und teste dann mit dem folgenden VBA-Code:
    Sub testDropdown()
        If Range("B1").Validation.InCellDropdown Then
            MsgBox "Dropdown vorhanden!"
        Else
            MsgBox "Kein Dropdown."
        End If
    End Sub
  • Gültigkeitsprüfung auf mehrere Zellen anwenden:

    • Wenn Du eine Gültigkeitsprüfung auf einen Bereich anwenden möchtest, kannst Du den Code anpassen und eine Schleife verwenden, um alle Zellen zu überprüfen.

Tipps für Profis

  • Du kannst die Gültigkeitsprüfung in Excel auch nutzen, um Daten zu validieren, bevor sie in eine Datenbank eingegeben werden. Dies hilft, fehlerhafte Daten zu vermeiden.
  • Wenn Du mehrere Zellen mit der gleichen Gültigkeitsprüfung hast, kannst Du den VBA-Code so anpassen, dass er eine Schleife verwendet und die Gültigkeitsprüfung für alle relevanten Zellen überprüft.

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob ein Wert in einer Zelle vorhanden ist? Du kannst die Funktion IsEmpty verwenden, um zu testen, ob eine Zelle leer ist:

If IsEmpty(Range("A1")) Then
    MsgBox "Zelle A1 ist leer."
Else
    MsgBox "Wert in Zelle A1 vorhanden."
End If

2. Was ist eine Gültigkeitsprüfung in Excel? Eine Gültigkeitsprüfung in Excel sorgt dafür, dass nur bestimmte Daten in eine Zelle eingegeben werden können, wie z.B. eine Liste von Werten oder Zahlen in einem bestimmten Bereich.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige