• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Datums controleren in Sheet bij openen bestand

Status
Niet open voor verdere reacties.

McMacro

Gebruiker
Lid geworden
11 dec 2009
Berichten
80
Hallo Allemaal,

Bij het openen van een excelbestand moet er gecontroleerd worden in de range X5:AB250 of er een datum in staat (Vandaag +1) Dus als het vandaag 14 juli 2010 is moet er, bij het openen van het bestand, een msgbox verschijnen dat er morgen controles uitgevoerd moeten worden.

Iemand een idee?

Met vriendelijke groet,

McMacro
 
Geweldig!!!

Hallo Danny147,

Deze oplossing werkt perfect. Ik werk wel met Excel2000 en heb er dit aan toe moeten voegen:

Code:
Private Sub Workbook_Open()

    Run "Protect"
    
  [B][I]  Dim cl As Range[/I][/B]
    For Each cl In Range("X5:AB250")
    If cl.Value = Date + 1 Then
    MsgBox ("LET OP!!! Morgen moet er gecontroleerd worden.")
    End If
    
    Next

End Sub

Rest mij nog een vraag. Is het ook mogelijk in de MsgBox te laten zien 'wat' er gecontroleerd moet worden?
'Wat' er gecontroleerd moet worden staat in Kolom C in dezelfde rij als de datum staat.

Met vriendelijke groet,

McMacro
 
zet dit ipv je eigen MsgBox code:

Code:
MsgBox ("LET OP!!! Morgen moet er gecontroleerd worden: " & Range("C" & cl.Row).Value)
 
Hallo Haije, Danny147 en anderen,

Op dit moment ziet de code er zo uit:

Code:
Private Sub Workbook_Open()

    Run "Protect"
    
    Dim cl As Range
    For Each cl In Range("X5:AB250")
    If cl.Value = Date + 1 Then
    MsgBox ("LET OP!!! Morgen moet er gecontroleerd worden: " & Range("B" & cl.Row).Value)
    End If
    If cl.Value = Date + 2 Then
    MsgBox ("LET OP!!! Overmorgen moet er gecontroleerd worden: " & Range("B" & cl.Row).Value)
    End If
    If cl.Value = Date + 3 Then
    MsgBox ("LET OP!!! Deze week moet er gecontroleerd worden: " & Range("B" & cl.Row).Value)
    End If
    If cl.Value = Date + 4 Then
    MsgBox ("LET OP!!! Deze week moet er gecontroleerd worden: " & Range("B" & cl.Row).Value)
    End If
    If cl.Value = Date + 5 Then
    MsgBox ("LET OP!!! Deze week moet er gecontroleerd worden: " & Range("B" & cl.Row).Value)
    End If
    If cl.Value = Date + 6 Then
    MsgBox ("LET OP!!! Deze week moet er gecontroleerd worden: " & Range("B" & cl.Row).Value)
    End If
    If cl.Value = Date + 7 Then
    MsgBox ("LET OP!!! Deze week moet er gecontroleerd worden: " & Range("B" & cl.Row).Value)
    End If
    
    Next

End Sub

Kan dit korter? Tevens is mijn vraag: Stel dat er 5 controles op één dag uitgevoerd moeten worden, dan staan deze allen naast elkaar weergegeven in de MsgBox. kan dit ook onderelkaar? Voor de rest werkt 't prima.

Met vriendelijke groet,

McMacro
 
Dit is de code die ik nu heb:

Code:
Sub Controleren()
    
    For Each cl In Range("X5:AB200")
    If cl.Value > Date + 1 And cl.Value < Date + 7 Then
    
    MsgBox _
    ("LET OP!!! Deze week moet gecontroleerd worden: " _
    & vbCr _
    & vbCr & ("- ") & Range("B" & cl.Row).Value) & (" !   ") & cl.Value _  [COLOR="green"]' De cl.Value geeft de datum + 1:12:00   <- Wat is dit, en hoe krijg ik dit weg?[/COLOR]
    & vbCr
    
    End If
    
    Next

End Sub

Hoe kan ik alle bij behorende cellen (uit kolom B) die voldoen aan cl.Value > Date + 1 And cl.Value < Date + 7 Then onder elkaar laten zetten in de MsgBox? Nu krijg ik voor iedere datum die voldoet aan de criteria een aparte MsgBox en dat kan wel oplopen tot 10 stuks of meer.

Iemand een idee?

Met vriendelijke groet,

McMacro
 
Laatst bewerkt:
Deels gelukt!

Bijna gelukt !

Code:
Sub Controleren()
    
    For Each cell In Range("X5:AB200")
    If cell.Value > Date + 1 And cell.Value < Date + 7 Then
    
    MsgBox ("LET OP!!! Deze week moet gecontroleerd worden: " _
    & vbCr _
    & vbCr & ("  -  ") & cell.Text & ("  -  ") & Range("C" & cell.Row).Value) & ("  -  " & Range("B" & cell.Row).Value) & ("  !") _
    & vbCr _
    & vbCr
    End If
    
    Next

End Sub

Het enige wat er nog gebeuren moet is dat de macro niet 10 msgboxjes laat zien voor iedere datum een eigen msgbox, maar één msgbox met de hele lijst aan controles.

Met vriendelijke groet,

McMacro
 
Code:
Sub Controleren()
    
    For Each cell In Range("X5:AB200")
        If cell.Value > Date + 1 And cell.Value < Date + 7 Then
            sTekst = sTekst & vbCr & ("  -  ") & cell.Text & ("  -  ") & Range("C" & cell.Row).Value & ("  -  " & Range("B" & cell.Row).Value) & ("  !") & vbCr
        End If
    Next
    MsgBox "LET OP!!! Deze week moet gecontroleerd worden: " & vbCr & sTekst

End Sub

Met vriendelijke groet,


Roncancio
 
Super!!!

Ja helemaal geweldig,

Het werkt nu helemaal naar wens. Bedankt Excellers !!! ;)

Met vriendelijke groet,

McMacro
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan