Fehlersuche bei Excel-Code
#1
Hallo zusammen,

ich kenne mich bei VBA-Codes nicht so gut aus und bin eher so der Probierer und Bastler.

Zum Thema:

Ich würde gerne mehrere Pfilchtfelder in meiner Datei einfügen. Bei der Betätigung eines Buttons wird dann gepüft, ob die Felder gefüllt sind. Wenn ja, dann soll ein anderes Makro aktiviert werden. Wenn nein, dann muss eine Fehlermeldung erscheinen.

Bisher habe ich diesen Code:

Code:
Sub test()
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = Worksheets("Tabelle1").Range("m28,m29,m30")
For Each zaehler In rgBereich
If zaehler = "" Then
zaehler.Select
MsgBox "Dein Meldungstext!", vbOKOnly
Exit For
End If
Next zaehler
Application.EnableEvents = True
If zaehler >= "" Then
zaehler.Select
Next zaehler
Exit For
Application.EnableEvents = True
Call MailMitOutlooktechnischeLeitung
Exit For
End If
End Sub


Es erscheint aber die Fehlermeldung "Next ohne For". Ich weiß nicht was wich wie behebn soll. Könnt ihr mir weiter helfen? Danke

Daniel Eitel
Top
#2
Hallo,

wenn Du Deinen Code mal strukturierst (z. b. durch Einrückungen) und diesen dann genau durchsiehst, wirst Du dehen, dass Du Next zaehler zweimal aufgeführt hast. Daher die Fehlermeldung.

Ich würde das so lösen:
Code:
Sub test()
If WorksheetFunction.CountA(Worksheets("Tabelle1").Range("M28:M30")) = 3 Then
    Call MailMitOutlooktechnischeLeitung
End If
End Sub
Gruß
Michael
Top
#3
Hallo Michael,

mit diesem Code wird das nächste Makro aktiviert, wenn alle drei Felder gefüllt sind. Das ist soweit auch gewünscht.

Wenn aber ein Feld nicht gefüllt ist, tut sich gar nichts, es sollte aber eine Messagebox aufgehen mit meiner gewünschten Nachricht. Wie und wo füge ich den zusätzlichen Code nun ein?

Danke
Top
#4
Na, dann fragst Du einfach Tante Else Wink und ergänzt den Code wie folgt:
Code:
Sub test()
If WorksheetFunction.CountA(Worksheets("Tabelle1").Range("M28:M30")) = 3 Then
    Call MailMitOutlooktechnischeLeitung
Else
    MsgBox("Meldung!")
End If
End Sub
Gruß
Michael
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste