Gültigkeitsprüfung / Validation

Bild

Betrifft: Gültigkeitsprüfung / Validation
von: Maximililan
Geschrieben am: 14.10.2003 14:40:47

Hallo Zusammen,
Bin bereits am verzweifeln und braucht dringend eure Hilfe.
Im nachfolgenden Beispiel versuche ich einige Informationen aus dem Objekt Validation aus der einen Mappe in die andere Mappe zu kopieren.

Aber jedes mal wenn Excel auf eine Zelle ohne Gültigkeitsprüfung stösst, bricht es mit der Fehlermeldung „Anwendungs oder objektorientierter Fehler“ ab.

Es muss doch eine Möglichkeit geben, vorab schon die Zelle auf Gültigkeit zu überprüfen.

Bitte helft mir.

Danke danke danke

Maximilian



Sub ZellenGueltigkeit()
'On Error Resume Next
Dim zeile As Long
Dim spalte As Long
zeile = 2
spalte = 1
Dim c As Range
For Each c In Worksheets("Name").UsedRange
On Error GoTo errorhandler
If Len(c.Validation.ErrorMessage) > 0 Then
Sheets("Name2").Application.Cells(zeile, 1).Value = _
c.Address
Worksheets("Name2").Application.Cells(zeile, 2).Value = _
c.Validation.ErrorTitle
Sheets("Name2").Application.Cells(zeile, 3).Value = _
c.Validation.ErrorMessage
zeile = zeile + 1
End If
errorhandler:
Next
End Sub

Bild


Betrifft: AW: Gültigkeitsprüfung / Validation
von: Ramses
Geschrieben am: 14.10.2003 15:52:59

Hallo

der Code müsste so eigentlich funktionieren.
Welche Zeile wird den markiert, wenn das Makro abbricht.

By the Way:
Wenn du einen ErrorHandler einbaust, musst da auch was machen.
Zumindest

Err.Clear


Gruss Rainer


Bild


Betrifft: Hallo Rainer
von: Maximilian
Geschrieben am: 14.10.2003 16:11:03

Die Zeile
If Len(c.Validation.ErrorMessage) > 0 Then
wird markiert.

Und zwar nach dem zweiten Fehleraufruf.

Habe mein Programm erweitert:
Sub ZellenGueltigkeit()
On Error Resume Next
Dim zeile As Long
Dim spalte As Long
zeile = 2
spalte = 1


Dim c As Range



For Each c In Worksheets("settings").UsedRange


If (Len(c.Validation.ErrorMessage) > 0) Then
If Err.Number <> 1004 Then

Sheets("settings2").Application.Cells(zeile, 1).Value = _
c.Address
Worksheets("settings2").Application.Cells(zeile, 2).Value = _
c.Validation.ErrorTitle
Sheets("settings2").Application.Cells(zeile, 3).Value = _
c.Validation.ErrorMessage
zeile = zeile + 1
End If

End If
'errorhandler:
Err.Clear

Jetzt funktioniert es. (Aber leider keine ganz saubere Lösung)
Vielen Dank für deinen Tipp.
Gruss
Maximilian


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Kann ...\XLQUERY.XLA nicht finden"