ich versuche folgendes Problem zu lösen: In Spalte A stehen (von Zeile 2 bis 4 vor Ende) strings, die nach einem bestimmten Muster aufgebaut sein sollen ("starke-?-N-####_##_##?"). Nun möchte ich prüfen, ob alle strings korrekt sind. Für jeden string, der fehlerhaft ist, möchte ich in der Message-Box die Adresse der jeweiligen Zelle ausgeben.
Zur Lösung habe ich mich bei unterschiedlichen Prüf-Makros aus dem Netz bedient und habe versucht, sie neu zusammenzusetzen. Leider führt mein Versuch nicht zu dem gewünschten Ergebnis. Als Fehlermeldung wird mir immer die erste und letzte Zelle der chkRange ausgegeben, unabhängig vom Inhalt der Zellen.
Hier der Versuch:
Sub PrüfungSpalteA()
Dim strKB As String
Dim msg As String
Dim chkRange As Range
Dim myC As Range
Dim sMatch As Boolean
Dim letztezeile As Long
Dim i As Integer
Dim letzteadresse As String
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row - 4
letzteadresse = "A" & letztezeile
'Hier die Zellen eintragen die geprüft werden sollen
Set chkRange = Range("A2;" + letzteadresse)
For i = 2 To letztezeile
strKB = Sheets("Vorbereitung Metadaten").Cells(2, i).Value
sMatch = strKB Like "starke-?-N-####_##_##?"
Next
msg = ""
For Each myC In chkRange
If sMatch = False Then
msg = msg & myC.Address & vbCrLf
End If
Next
If msg = "" Then
MsgBox " alles ok"
Else
MsgBox "Folgende Zellen entsprechen nicht dem vorgegebenen Format:" & msg
End If
End Sub
Vermutlich habe ich keine ausreichende Verbindung zwischen myC und i. Hat jemand eine Idee, wie es klappen könnte?