Ich habe ein Szenario, in dem ich prüfen muss, ob Spalte A nicht leer ist, entsprechende Zeilenwerte in anderen Spalten sollten nicht leer sein. Wenn dies der Fall ist, möchte ich eine Fehlermeldung erhalten.Überprüfen, ob Pflichtfelder vor jedem Speichern im Makro nicht leer sind
Also ich kam mit diesem.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim rngCell As Range
Dim lngLstRow As Long, lngTCols As Long
Dim lngRowCheck(1 To 5) As String
For Each rngCell In Range("A1:A" & lngLstRow)
If Not IsEmpty(rngCell.Value) Then
lngRowCheck(1) = "C"
lngRowCheck(2) = "F"
lngRowCheck(3) = "G"
lngRowCheck(4) = "J"
lngLstRow = ActiveSheet.UsedRange.Rows.Count
For i = 1 To UBound(lngRowCheck)
For Each rngCell In Range(lngRowCheck(i) & "2:" & lngRowCheck(i) & lngLstRow)
If rngCell.Value = 0 Then
MsgBox ("Please enter a name in cell " & rngCell.Address)
rngCell.Select
End If
Next
Next i
Next
End Sub
Dies ist jedoch nicht funktioniert und die Validierung nicht geschieht vor jedem Speichern und ich bin nicht in der Lage, dies auch zu debuggen. Irgendeine Hilfe? Mache ich etwas falsch?
Warum sind Sie zu debuggen nicht in der Lage? – FunThomas
Wie benutze ich rngCell und lngLstRow, bevor ich sie definiere? – jivko
Nach korrekter Einrückung Ihres Codes zeigt sich, dass irgendwo vor dem letzten 'Next' ein' End If' fehlt. –