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.

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
Antworten 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
Antworten 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
Antworten Top
#4
(18.06.2015, 12: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
Antworten 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
Antworten 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.
Antworten 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
Antworten Top
#8
Hallo,

welchen Code hast Du jetzt?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#9
(18.06.2015, 15: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
Antworten 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
Antworten Top


Gehe zu:


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