Excel 03 VBA - Zellenwert alle Zellen überprüfen

fiedlator

Commander
Registriert
Okt. 2002
Beiträge
2.192
Hallo zusammen,
ich möchte bei Start eines Makros überprüfen, ob mindestens eine der Zellen in Range leer ist. Meine Lösung führt dazu, dass die Abfrage inkl. der then-Funktion für jede Zelle einzeln ausgeführt wird. Es soll aber nur einmal then ausgeführt werden, wenn mindestens eine Zelle leer ist. Was muss ich dafür umschreiben? Merci :)


Code:
Sub Frage3()

For Each zelle In Range("F3:F6").Cells

If zelle.Value = "" Then
   a = MsgBox("Bitte überprüfen Sie die Eingaben auf Vollständigkeit", , "Hallo")
    If a = vbYes Then Call Mark
  
Else
  Call auswahl
  
End If

Next

End Sub
 
Die einfachste Lösung ist eine Art Switch in die Funktion einzubauen...
Du erstellst zu Beginn eine Variable, deren Wert du auf 0 setzt und sobald eine leere Zelle kommt, setzt du die Variable auf 1. Und die 0 machst du einfach als Bedingung zur Ausführung der Messagebox.
 
So in etwa dachte ich mir das auch. Nur ist mir die Vorgehensweise hierfür nur über eine zusätzliche Zellenfunktion klar. Du meinst, dass ich das alles gleich im VBA-Code deklarier, oder?
 
Ich meine so etwas hier:
Code:
Sub Frage3()

Dim Switch As Boolean

Switch = False

For Each zelle In Range("F3:F6").Cells

If zelle.Value = "" And Switch = False Then
    Switch = True
    
    a = MsgBox("Bitte überprüfen Sie die Eingaben auf Vollständigkeit", , "Hallo")
        If a = vbYes Then Call Mark
  
Else
  Call auswahl
  
End If

Next

End Sub
 
Oder wenn die Bedingung wahr ist, die For-Schleife mit Exit For verlassen oder wenn gar nicht mehr kommt, das Makro mit Exit Sub beenden.

Ach sorry, hab übersehen, dass es noch ein Else gibt.
 
Zurück
Oben