Macro stoppen

Status
Niet open voor verdere reacties.

goof2808

Gebruiker
Lid geworden
2 feb 2007
Berichten
130
Ik heb wat code in een blad geplakt: Een message-box verschijnt als in een cel een bepaalde waarde wordt behaald.
Elke keer als ik in het werkblad(of bestand) iets aanpas verschijnen de message-boxen weer.

Hoe kan ik ervoor zorgen dat de message-box alleen verschijnt als ik het bestand open?

Hieronder een gedeelte van de code:

Code:
Private Sub Worksheet_Calculate()
    If [E2] > 15 Then MsgBox Range("B2"), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    If [E3] > 15 Then MsgBox Range("B3"), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    If [E4] > 15 Then MsgBox Range("B4"), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    If [E5] > 15 Then MsgBox Range("B5"), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    If [E6] > 15 Then MsgBox Range("B6"), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    If [E7] > 15 Then MsgBox Range("B7"), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    If [E8] > 15 Then MsgBox Range("B8"), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    If [E9] > 15 Then MsgBox Range("B9"), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
End Sub

Alvast bedankt voor de hulp!

Goof
 
Zet dit in de code bij ThisWorkbook.

Code:
Private Sub Workbook_Open()
    Dim c As Range
    For Each c In Range("E2:E9")
        If c > 15 Then MsgBox c, vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    Next
End Sub

Wigi
 
Hey Wigi,

Ik snap het niet helemaal

Als ik jouw code alleen in ThisWorkbook zet gebeurt er niets.

Of moet ik boven de al bestaande code zetten?

Goof
 
Alleen mijn code.

Je moet natuurlijk het bestand eerst terug openen voor er iets gaat gebeuren.
 
Sorry, maar er gebeurt niets.

Ik heb het bestand bijgevoegd.

Thanks,
Goof
 

Bijlagen

Zet dit in de code bij ThisWorkbook.

Code:
Private Sub Workbook_Open()
    Dim c As Range
    For Each c In Range("E2:E9")
        If c > 15 Then MsgBox c, vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    Next
End Sub

Wigi

Zie het vette deel in de quote.
 
Hey,

De macro werkt nu inderdaad alleen als je het bestand opent.

-Alleen lijkt voor elke record een melding te verschijnen.
-In de messagebox moet eigenlijk de waarde uit B2:B126 van de corresponderende rij komen.
(de waarden in kolom E worden verkregen door een formule, maakt dit iets uit?)

Bedankt voor je geduld, ik ben slechts een beginner op het gebied van VBA


Goof
 
Zo dan?

Code:
Private Sub Workbook_Open()
    Dim c As Range
    For Each c In Range("E2:E126")
        If c > -30 And c < 0 Then MsgBox c.Offset(, -3), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    Next
End Sub

Wigi
 
Hij pakt de goede waarde voor in de messagebox!

Wat ik niet snap:
-Nu verschijnen de messageboxen weer bij elke aanpassing in het werkblad!?
-De macro moet in actie komen als in kolom E de waarde tussen -15 en 0 valt,
toch meld hij de eerste 3 namen terwijl de waarden 2, 2 en 1 zijn


Goof
 
Code:
Private Sub Workbook_Open()
    Dim c As Range
    For Each c In Range("E2:E126")
        If c > -15 And c < 0 Then MsgBox c.Offset(, -3), vbOKOnly + vbInformation, "LET OP! Einddatum contract nadert!"
    Next
End Sub

Als ik deze code gebruik, krijg ik niemand, aangezien er niemand voldoet aan de voorwaarden.
 
Hey Wigi,

Hij doet toch niet preceis wat ik wil.

Heel erg bedankt voor je moeite, ik probeer dit weekeinde nog of ik iets kan ontdekken.

Ik kom er nog op terug.

Thanks,

Goof
 
Hi Wigi,

Je code klopt helemaal.
Het doet toch wat ik wilde.

Thanks,

Goof
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan