Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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