Prüfen, ob Range Datenüberprüfung enthält

Moderator: ModerationP

Prüfen, ob Range Datenüberprüfung enthält

Beitragvon elmarvo » 17. Mai 2018, 21:16

Guten Abend zusammen,

ich möchte herausfinden, ob für einen Bereich eine Datenüberprüfung festgelegt wurde, in meinem Fall eine Dropdown-Liste mit vorher definierten Einträgen (data validation).

Code: Alles auswählen
Sub testdatavalidation()
Dim Bereich As Range
Set Bereich = Range("A1:C1")

If Bereich.SpecialCells(xlCellTypeSameValidation).Cells.Count < 1 Then
   MsgBox "keine Datenüberprüfung"
Else
   MsgBox "Datenüberprüfung vorhanden"
End If
End Sub


Im Bereich ist keine Datenüberprüfung vorhanden; ich habe die Zellen sogar gelöscht, um ganz sicher zu gehen :roll: Trotzdem sagt mir die MsgBox, dass eine Datenüberprüfung vorhanden sei :?
Weiß eventuell jemand, was ich hier falsch mache?

Viele Grüße
elmarvo
elmarvo
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 132
Registriert: 15. Nov 2013, 09:44
Wohnort: Bonn

Re: Prüfen, ob Range Datenüberprüfung enthält

Beitragvon snb » 17. Mai 2018, 22:08

Verwende 'AllValidation'

Code: Alles auswählen
Sub M_snb()
   msgbox range("A1:C1").specialcells(-4174).address
End Sub
Zuletzt geändert von snb am 18. Mai 2018, 10:48, insgesamt 1-mal geändert.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6071
Registriert: 25. Sep 2014, 16:37

Re: Prüfen, ob Range Datenüberprüfung enthält

Beitragvon elmarvo » 18. Mai 2018, 09:40

Hallo snb,

leider erhalte ich sowohl bei

Code: Alles auswählen
MsgBox Range("A1:C1").SpecialCells(-4174).Address


als auch

Code: Alles auswählen
If Bereich.SpecialCells(xlCellTypeAllValidation).Cells.Count < 1 Then
    MsgBox "no validation"
Else
    MsgBox "has validation"
End If


(Bereich = Range("A1:C1")

Einen Laufzeitfehler '1004': Keine Zellen gefunden.
:? :?:

EDIT: Der Code liegt in einem Modul. Ich habe nun den Bereich konkreter bestimmt

Code: Alles auswählen
Set Bereich = Worksheets("Tabelle1").Range("A1:C1")


Nun erhalte ich einen anderen Laufzeitfehler...
Laufzeitfehler '-2147352565 (80002000b)': Keine Zellen gefunden

Ich blick hier nicht mehr durch :shock: Liegt es vielleicht daran, dass es ein Bereich aus mehreren Zellen ist? Muss ich hier evtl. jede Zelle des Bereichs einzeln durchgehen und prüfen?

Nochmal Edit:
Leider tritt hier der selbe Laufzeitfehler auf:
Code: Alles auswählen
Dim Bereich As Range, Zelle As Range
Set Bereich = Range("A1:C1")

For Each Zelle In Bereich

If Zelle.SpecialCells(xlCellTypeAllValidation).Cells.Count < 1 Then
    MsgBox "no validation"
Else
    MsgBox "has validation"
End If

Next


Viele Grüße
elmarvo
elmarvo
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 132
Registriert: 15. Nov 2013, 09:44
Wohnort: Bonn

Re: Prüfen, ob Range Datenüberprüfung enthält

Beitragvon snb » 18. Mai 2018, 10:47

Code: Alles auswählen
Sub M_snb()
  on error resume next

  c00=range("A1:C1").specialcells(-4174).address
  msgbox iif(err.number=0,c00,"kein Validation")
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6071
Registriert: 25. Sep 2014, 16:37

Re: Prüfen, ob Range Datenüberprüfung enthält

Beitragvon elmarvo » 18. Mai 2018, 10:53

snb hat geschrieben:
Code: Alles auswählen
Sub M_snb()
  on error resume next

  c00=range("A1:C1").specialcells(-4174).address
  msgbox iif(err.number=0,c00,"kein Validation")
End Sub


Hallo snb,

danke für deine Hilfe! Es funktioniert nun.

Allerdings würde es mich wirklich sehr interessieren, warum es bei mir bisher immer fehlgeschlagen ist... Vielleicht kann mich hier ja jemand aufklären.

Viele Grüße
elmarvo
elmarvo
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 132
Registriert: 15. Nov 2013, 09:44
Wohnort: Bonn

Re: Prüfen, ob Range Datenüberprüfung enthält

Beitragvon Nicolaus » 19. Mai 2018, 09:47

Hi,

SpecialCells läuft in einen Fehler wenn der gesuchte Typ nicht vorhanden ist.

Gruß
Nic
die Forenhelfer freuen sich über eine Antwort
Benutzeravatar
Nicolaus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4572
Registriert: 02. Feb 2010, 15:52
Wohnort: Rhein Main Gebiet


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: silangan und 18 Gäste