If then Else anweisung
#1
Hallo Forum,

ich brauche mal wieder eure Hilfe,

Ich habe eine arbeitsmappe mit einem Arbeitsblatt (4) in dem einige Sachen eingegeben werden.
Unter anderem wird in einer Zelle (E4) die Differenz aus zwei Kalender-Daten in Tagen berechnet.

Wenn differenz jeweils 2 / 4 / 6 / 8 /10 / 12 beträgt soll eine Erinnerung erscheinen.
Ich habe dies in dieser Form realisiert. Jedoch will das so nicht laufen.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)



Dim cb As CommandBar
Dim raBereich As Range


If ThisWorkbook.Worksheets(4).Range("B29").Value >= 1 Then
    If MsgBox("An die Weiterführung der Antibiosetage gedacht ???", vbYesNo, "Hinweis") = vbNo Then
        Application.GoTo ThisWorkbook.Worksheets(4).Range("k25")
        Cancel = True
    End If
End If
 
  If ThisWorkbook.Worksheets(4).Range("K5") = "" And ThisWorkbook.Worksheets(4).Range("c4") <> "" Then
MsgBox ("Bitte das Aufnahmedatum  eingeben")
Range("k5").Select
    Cancel = True
    
End If
    
  If ThisWorkbook.Worksheets(4).Range("e9").Value = 2 Or 4 Or 6 Or 8 Or 10 Or 12 Then
                MsgBox ("Trala")   'mit dieser Anweisung gibt er mir die MsgBox immer aus egal welcher Wert in E9 steht
    
    End If





   



Kann mir jemand einen Tipp geben

Danke
Hubert
Top
#2
Hallo Hubert,

Code:
 If ThisWorkbook.Worksheets(4).Range("e9").Value < 13 And Not WorksheetFunction.IsOdd(ThisWorkbook.Worksheets(4).Range("e9").Value) Then
               MsgBox ("Trala")   'mit dieser Anweisung gibt er mir die MsgBox immer aus egal welcher Wert in E9 steht
   
   End If
Gruß Stefan
Win 10 / Office 2016
Top
#3
Hallo,

danke für die schnelle Antwort. Es funkrioniert so nicht.
Jetzt gibt er mir keine MsgBox aus.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)


Dim cb As CommandBar
Dim raBereich As Range


If ThisWorkbook.Worksheets(4).Range("B29").Value >= 1 Then
    If MsgBox("An die Weiterführung der Antibiosetage gedacht ???", vbYesNo, "Hinweis") = vbNo Then
        Application.GoTo ThisWorkbook.Worksheets(4).Range("k25")
        Cancel = True
    End If
End If
  
  If ThisWorkbook.Worksheets(4).Range("K5") = "" And ThisWorkbook.Worksheets(4).Range("c4") <> "" Then
MsgBox ("Bitte das Aufnahmedatum  eingeben")
Range("k5").Select
    Cancel = True
    
End If
    
  If ThisWorkbook.Worksheets(4).Range("e9").Value < 13 And Not WorksheetFunction.IsOdd(ThisWorkbook.Worksheets(4).Range("e9").Value) Then
               MsgBox ("Trala")   'mit dieser Anweisung gibt er mir die MsgBox immer aus egal welcher Wert in E9 steht
  
    Range("f56").Select
    Cancel = True
    End If

Gruß
Hubert
Top
#4
(18.06.2015, 13:35)cavok schrieb: Hallo,

danke für die schnelle Antwort. Es funkrioniert so nicht.
Jetzt gibt er mir keine MsgBox aus.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)


Dim cb As CommandBar
Dim raBereich As Range


If ThisWorkbook.Worksheets(4).Range("B29").Value >= 1 Then
   If MsgBox("An die Weiterführung der Antibiosetage gedacht ???", vbYesNo, "Hinweis") = vbNo Then
       Application.GoTo ThisWorkbook.Worksheets(4).Range("k25")
       Cancel = True
   End If
End If
 
 If ThisWorkbook.Worksheets(4).Range("K5") = "" And ThisWorkbook.Worksheets(4).Range("c4") <> "" Then
MsgBox ("Bitte das Aufnahmedatum  eingeben")
Range("k5").Select
   Cancel = True
   
End If
   
 If ThisWorkbook.Worksheets(4).Range("e9").Value < 13 And Not WorksheetFunction.IsOdd(ThisWorkbook.Worksheets(4).Range("e9").Value) Then
              MsgBox ("Trala")   'mit dieser Anweisung gibt er mir die MsgBox immer aus egal welcher Wert in E9 steht
 
   Range("f56").Select
   Cancel = True
   End If

Gruß
Hubert

Hallo,
Ich muss mich korrigieren. Ich bekomme die MsgBox immer bei Zahlen unter 13. Ich wollte es jedoch so dass die MsgBox nur auftaucht bei geraden Zahlen.
Und noch ein Problem. Ich bin dann in einer Endlosschlaufe gefangen. ich komm nicht mehr raus wenn die MsgBox auftaucht.

Gruß
Hubert
Top
#5
Hallo,

Code:
If Not WorksheetFunction.IsOdd(ThisWorkbook.Worksheets(4).Range("e9").Value) Then
              MsgBox ("Trala")   'mit dieser Anweisung gibt er mir die MsgBox immer aus egal welcher Wert in E9 steht

Endlosschleife? Das Schließen wird wegen Cancel = True abgebrochen.
Gruß Stefan
Win 10 / Office 2016
Top
#6
Hallo,



Code:
If WorksheetFunction.IsEven(Range("E9")) and Range("E9")<13 Then MsgBox "Trala"
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#7
Hallo,

Danke! Aus der Endlosschlaufe bin ich befreit.
Die MsgBox geht jedoch immer noch nicht auf, bei geraden Zahlen in E9

Gruß
Hubert
Top
#8
Hallo,

welchen Code hast Du jetzt?
Gruß Stefan
Win 10 / Office 2016
Top
#9
(18.06.2015, 16:02)Steffl schrieb: Hallo,

welchen Code hast Du jetzt?

Hallo,

If Not WorksheetFunction.IsOdd(ThisWorkbook.Worksheets(4).Range("e9").Value) Then

              MsgBox ("Trala")
   
    
    End If
Top
#10
Hallo Hubert,

könntest Du die Datei hier hochladen? Ich habe meine Lösung auch getestet, da ging definitiv bei einer geraden Zahl die MsgBox auf.
Gruß Stefan
Win 10 / Office 2016
Top


Gehe zu:


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