Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Mehrere Bedingungen abfragen
25.03.2016 20:10:27
Jens
Hallo zusammen,
Ich weiss leider nicht, wie ich eine Schleife korrekt formuliere, wenn bestimmte Bedingungen zutreffen.
Es sollte beim Clicken des Buttons Monat abschliessen eine Fehlermeldung auftauchen, sobald jemand in meiner Tabelle in Spalte F den Text "Urlaub" einträgt und gleichzeitig Arbeitszeiten oder Pausenzeiten in den Spalten B, C oder D eingetragen hat.
Ich bekomme die Fehlermeldung "Laufzeitfehler 13. Typen unverträglich."
Kann mir hier jemand weiterhelfen, wie ich diese Schleife richtig formuliere ?
Und wie kann ich mir bei dem Text die Zeilennummer anzeigen lassen ?
Vielen Dank für Eure Hilfe !
Das ist der Code:
Private Sub CommandButton1_Click()
If Range("J5") = "" Then
If Range("F14:F44").Value = "Urlaub" And Range("B14:B55").Value  "" And Range("C14:  _
_
C55").Value  "" And Range("D14:D55").Value  "" Then
Dim strText As String
strText = "Fehler in Zeile x. Bei einem Urlaubstag sind können keine Urlaubs- oder   _
_
Pausenzeiten abgerechnet werden."
MsgBox strText
Else
Range("j5").Value = 1#
CommandButton1.BackColor = RGB(255, 0, 0)
ActiveSheet.CommandButton1.Caption = "Monat abgeschlossen"
End If
Else
Range("j5").Value = ""
CommandButton1.BackColor = RGB(51, 255, 0)
ActiveSheet.CommandButton1.Caption = "Monat abschliessen"
End If
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Bedingungen abfragen
25.03.2016 20:47:36
Peter
Hallo Jens,
versuche es einmal so:
Option Explicit
Private Sub CommandButton1_Click()
Dim lZeile  As Long
If Range("J5") = "" Then
For lZeile = 14 To 44
If Range("F" & lZeile).Value = "Urlaub" Then
If Range("B" & lZeile).Value  "" Or _
Range("C" & lZeile).Value  "" Or _
Range("D" & lZeile).Value  "" Then
MsgBox "Fehler in Zeile  """ & lZeile & """  Bei einem Urlaubstag sind können  _
keine Urlaubs- oder" & _
" Pausenzeiten abgerechnet werden.", _
48, "   Hinweis für " & Application.UserName
Else
Range("j5").Value = 1#
CommandButton1.BackColor = RGB(255, 0, 0)
ActiveSheet.CommandButton1.Caption = "Monat abgeschlossen"
End If
Else
Range("j5").Value = ""
CommandButton1.BackColor = RGB(51, 255, 0)
ActiveSheet.CommandButton1.Caption = "Monat abschliessen"
End If
Next lZeile
End If
End Sub

Gruß Peter

Anzeige
AW: Mehrere Bedingungen abfragen
26.03.2016 08:59:25
Jens
Hallo Peter,
Vielen Dank für die Hilfe. Funktioniert prima ! Ich habe den Code noch etwas umgestellt und eine Fehlervariable eingebaut.
Viele Grüße,
Jens

AW: Mehrere Bedingungen abfragen
26.03.2016 11:48:17
Jens
Ich habe jetzt die Fehler-Variable eingebaut. Die ersten beiden Abfragen (Arbeitszeit über zehn Stunden, Arbeitszeit nicht negativ) funktionieren einwandfrei. Nur die dritte Abfrage funktioniert nicht bzw. gibt die Fehlermeldung bei den falschen Zellen aus.
Das hat bestimmt etwas mit der Formatierung der Zellen zu tun. Die Zellen der Spalte B,C und D sind in hh:mm formatiert. Die Zellen der Spalte E benutzerdefiniert im Format 0,00;-0;;@.
Was mache ich falsch beim Auslesen der Werte ?
Private Sub CommandButton1_Click()
Dim lZeile  As Long
Dim Fehler As Long
Fehler = False
For lZeile = 14 To 44
If Range("F" & lZeile).Value = "URLAUB" Then
If Range("B" & lZeile).Value = "" Or _
Range("C" & lZeile).Value = "" Then
MsgBox "Fehler in Zeile  """ & lZeile & """  Bei geringfügig Beschäftigten mü _
ssen die geplanten Arbeitszeiten für einen Urlaubstag angegeben werden."
Fehler = True
End If
End If
If Range("E" & lZeile).Value > 10 Then
MsgBox "Fehler in Zeile  """ & lZeile & """  Die tägliche Arbeitszeit darf zehn  _
Stunden nicht überschreiten."
Fehler = True
End If
If Range("E" & lZeile).Value  0 And (Range("D" &  _
lZeile).Value * 1440) 

For lZeile = 14 To 44
If Range("F" & lZeile).Value = "URLAUB" Then
If Range("B" & lZeile).Value = "" Or _
Range("C" & lZeile).Value = "" Then
MsgBox "Fehler in Zeile """ & lZeile & """ Bei geringfügig Beschäftigten müssen die geplanten Arbeitszeiten für einen Urlaubstag angegeben werden."
Fehler = True
End If
End If
If Range("E" & lZeile).Value > 10 Then
MsgBox "Fehler in Zeile """ & lZeile & """ Die tägliche Arbeitszeit darf zehn Stunden nicht überschreiten."
Fehler = True
End If
If Range("E" & lZeile).Value MsgBox "Fehler in Zeile """ & lZeile & """ Die tägliche Arbeitszeit darf nicht negativ sein."
Fehler = True
End If
Next lZeile
If Range("J5") = "" And Fehler = True Then
Range("j5").Value = ""
CommandButton1.BackColor = RGB(51, 255, 0)
ActiveSheet.CommandButton1.Caption = "Monat abschliessen"
Else
Range("j5").Value = 1#
CommandButton1.BackColor = RGB(255, 0, 0)
ActiveSheet.CommandButton1.Caption = "Monat abgeschlossen"
End If
End Sub
Anzeige

262 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige