Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere If Abfragen , Eine MsgBox

Mehrere If Abfragen , Eine MsgBox
05.07.2017 15:21:21
Thomas
Hallo Profis,
Ich komm wieder nicht weiter ... :-(
ich habe mal das was ich versuche zusammen geschrieben, dass es hoffentlich verständlicher wird was ich machen möchte.
Ich hätte gerne das Excel 6 Zellen überprüft , ob etwas drin steht, falls nicht soll er das in der Msgbox untereinander auflisten. Am Ende soll er Fragen, ob wirklich gedruckt werden soll mit den Fehlern, ansonsten abbrechen
Dim Fehler As String 'Fehler
If Range("A3") = "" Then
Fehler = "- Bitte Feld 1 ausfüllen!" & vbNewLine
End If
If Range("C10") = "" Then
Fehler = "- Bitte Feld 2 ausfüllen!" & vbNewLine
End If
If Range("C34") = "" Then
Fehler = "- Bitte Feld 3 ausfüllen!" & vbNewLine
End If
If Range("C35") = "" Then
Fehler = "- Bitte Feld 4 ausfüllen!" & vbNewLine
End If
If Range("B23") = "" Then
Fehler = "- Bitte Feld 5 ausfüllen!" & vbNewLine
End If
If Range("F10") = "" Then
Fehler = "- Bitte Feld 6 ausfüllen!" & vbNewLine
End If
If IsEmpty(Fehler) Then
ActiveSheet.PrintOut
Else
MsgBox Fehler & "Trotzdem drucken?", vbYesNo, "Hinweis"
If MsgBox = vbYes Then
ActiveSheet.PrintOut
End If
End If
Vielen Dank
Thomas
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere If Abfragen , Eine MsgBox
05.07.2017 15:42:31
Burkhard
Am einfachsten zuerst den String initialisieren
  Fehler = ""

und dann immer hintendranhängen
  Fehler = Fehler & " - Bitte Feld 1 ausfüllen!" & vbNewLine 

usw.
Grüße
Burkhard
AW: Mehrere If Abfragen , Eine MsgBox
05.07.2017 15:45:28
Zwenn
Hallo Thomas,
bei Deinem Versuch überschreibst Du die Variable Fehler immer bei einer weiteren gefundenen leeren Zelle. So wird am Ende nur die letzte Zeile in Deiner Meldung ausgegeben. Veruschs so:

Dim Fehler1 As String
Dim Fehler2 As String
Dim Fehler3 As String
Dim Fehler4 As String
Dim Fehler5 As String
Dim Fehler6 As String
Fehler1 = ""
Fehler2 = ""
Fehler3 = ""
Fehler4 = ""
Fehler5 = ""
Fehler6 = ""
If Range("A3") = "" Then
Fehler1 = "- Bitte Feld 1 ausfüllen!" & vbNewLine
End If
If Range("C10") = "" Then
Fehler2 = "- Bitte Feld 2 ausfüllen!" & vbNewLine
End If
If Range("C34") = "" Then
Fehler3 = "- Bitte Feld 3 ausfüllen!" & vbNewLine
End If
If Range("C35") = "" Then
Fehler4 = "- Bitte Feld 4 ausfüllen!" & vbNewLine
End If
If Range("B23") = "" Then
Fehler5 = "- Bitte Feld 5 ausfüllen!" & vbNewLine
End If
If Range("F10") = "" Then
Fehler6 = "- Bitte Feld 6 ausfüllen!" & vbNewLine
End If
If IsEmpty(Fehler1 & Fehler2 & Fehler3 & Fehler4 & Fehler5 & Fehler6) Then
ActiveSheet.PrintOut
Else
MsgBox Fehler1 & Fehler2 & Fehler3 & Fehler4 & Fehler5 & Fehler6 & _
"Trotzdem drucken?", vbYesNo, "Hinweis"
If MsgBox = vbYes Then
ActiveSheet.PrintOut
End If
End If
Viele Grüße,
Zwenn
Anzeige
AW: Mehrere If Abfragen , Eine MsgBox
05.07.2017 15:48:11
Matthias
Hallo
Dim Fehler As String 'Fehler
If Range("A3") = "" Then
Fehler = "- Bitte Feld 1 ausfüllen!"
End If
If Range("C10") = "" Then
Fehler = Fehler & vbLf & "- Bitte Feld 2 ausfüllen!"
End If
If Range("C34") = "" Then
Fehler = Fehler & vbLf & "- Bitte Feld 3 ausfüllen!"
End If
If Range("C35") = "" Then
Fehler = Fehler & vbLf & "- Bitte Feld 4 ausfüllen!"
End If
If Range("B23") = "" Then
Fehler = Fehler & vbLf & "- Bitte Feld 5 ausfüllen!"
End If
If Range("F10") = "" Then
Fehler = Fehler & vbLf & "- Bitte Feld 6 ausfüllen!"
End If
If IsEmpty(Fehler) Then
ActiveSheet.PrintOut
Else
If MsgBox(Fehler & vbLf & vbLf & "Trotzdem drucken?", vbYesNo, "Hinweis") = vbYes Then  _
ActiveSheet.PrintOut
End If
Gruß Matthias
Anzeige
AW: Mehrere If Abfragen , Eine MsgBox
05.07.2017 15:52:29
Max2
Hallo,
hier ein Code zum ausprobieren, deinen Fehler text habe ich geändert, den kannst du aber einfach wieder zurück ändern:
Sub WarnUser()
Dim part_1 As String, part_2 As String
Dim wholeError As String
Dim i As Integer
wholeError = ""
part_1 = "- Achtung Feld ": part_2 = " ist leer!" & vbNewLine
If Range("a3") = "" Then wholeError = wholeError & part_1 & 1 & part_2
If Range("c10") = "" Then wholeError = wholeError & part_1 & 2 & part_2
If Range("c34") = "" Then wholeError = wholeError & part_1 & 3 & part_2
If Range("c35") = "" Then wholeError = wholeError & part_1 & 4 & part_2
If Range("b23") = "" Then wholeError = wholeError & part_1 & 5 & part_2
If Range("f10") = "" Then wholeError = wholeError & part_1 & 6 & part_2
If wholeError  "" Then
i = MsgBox(wholeError & vbNewLine & _
"Trotzdem drucken?", _
vbYesNo, "ACHTUNG!")
If i = 6 Then ActiveSheet.PrintOut Else Exit Sub
Exit Sub
End If
ActiveSheet.PrintOut
End Sub

Anzeige
AW: Mehrere If Abfragen , Eine MsgBox
05.07.2017 15:55:25
Michael
Hallo!
Ich würd's so machen:
Sub a()
Const PRE$ = "Bitte Feld #"
Const SUF$ = " ausfüllen!"
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
Dim a, f$, i&
a = Array("A3", "C10", "C34", "C35", "B23", "F10")
For i = LBound(a) To UBound(a)
If Ws.Range(a(i)) = "" Then f = f & PRE & i + 1 & SUF & vbLf
Next i
If f  vbNullString Then
If MsgBox(f & "Trotzdem drucken?", vbYesNo, "Hinweis") = vbYes Then
Ws.PrintOut
End If
Else: Ws.PrintOut
End If
Set Wb = Nothing: Set Ws = Nothing: Erase a
End Sub
LG
Michael
Anzeige
AW: Mehrere If Abfragen , Eine MsgBox
05.07.2017 16:16:00
Thomas
Wow, das ist echt Wahnsinn, wie schnell man hier Hilfe bekommt.
Ich bedankte mich recht herzlich, bei den ganzen Antworten ist bestimmt die passende Lösung für mich dabei!!
VIELEN HERZLICHEN DANK
Thomas
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige