• 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.

VBA bepalen of datum binnen periode valt?

Status
Niet open voor verdere reacties.

Demeter

Verenigingslid
Lid geworden
24 mei 2006
Berichten
1.659
Uhummmmmm,

Heb toch de raad in deze,http://www.helpmij.nl/forum/showthread.php?t=269452, post opgevolgd om te kijken of mijn cel aan en voorwaarde voldoet, waarna deze rood gemaakt wordt. Alleen.......... het controleren of er voldaan wordt aan de voorwaarde lukt mij niet.

Wil graag controleren of de datum van vandaag binnen de periode valt van de datum in cel J3:J15 - 2 maanden tot aan de datum in cel J3:15.

Zie attachment voor meer uitleg.

Iemand?

Bedankt voor je tijd.
Ferenc
 

Bijlagen

Hoi Demeter,

Kun je hier iets mee:

Code:
Sub rood()
Dim c As Range
Dim d As Integer

vandaag = Format(Date, "dd-mm-yyyy")
d = 0

For Each c In Range("J3:J15")
    'als de datum van vandaag valt binnen de periode, 2 maanden voor de datum in kolom J t/m datum in kolom J dan wordt cel rood.
    [COLOR="Red"]If Not DateDiff("m", CDate(c), CDate(vandaag)) <= -2 [/COLOR]Then
        c.Interior.ColorIndex = 3
        d = d + 1
    Else
        c.Interior.ColorIndex = 0
    End If
Next

If d > 0 Then
     MsgBox "Let op!!! Er moeten " & d & " artikelen gekeurd worden."
End If

End Sub
 
Spiderman,

Thanks voor de voorzet :thumb: . Moest hem nog onder controle brengen en na een korte dribbel uitgehaald en ................... GOALLLLLLLLLLLLLLLLLLLLLL!!!!!!!!

Heb je code aangepast aan mijn eisen.
Code:
Sub rood()
Dim c As Range
Dim d As Integer

d = 0

For Each c In Range("J3:J15")
    [COLOR="red"]If[/COLOR] DateDiff("m", [COLOR="Red"]Now[/COLOR], CDate(c)) <= 2 And [COLOR="Red"]CDate(c) >= Now[/COLOR] Then
        c.Interior.ColorIndex = 3
        d = d + 1
    Else
        c.Interior.ColorIndex = 0
    End If
Next

If d > 0 Then
     MsgBox "Let op!!! Er moeten " & d & " artikelen gekeurd worden."
End If

End Sub

Bedankt :thumb:

Groet,
Ferenc
 
!!! Is je vraag opgelost? Klik dan op de "vraag is opgelost"-link rechtsonder op de pagina. !!!
"Practice what you preach !":p :)

Met vriendelijke groet,


Roncancio
 
Vraag weer unlocked.

als ik deze code gebruik:
Code:
Sub test()
Dim c As Range
Dim d As Integer

d = 0

For Each c In Range("J3:J6")
    If DateDiff("m", Now, c) <= 2 And c >= Now Then
        c.Interior.ColorIndex = 3
        d = d + 1
    Else
        c.Interior.ColorIndex = 0
    End If
Next

If d > 0 Then
     MsgBox "Let op!!! Er moeten " & d & " artikelen gekeurd worden."
End If

End Sub

en J5 is leeg dan geeft hij foutmelding:
Typen komen niet overeen met elkaar.

Is het gehele bereik gevuld dan werkt dit weer wel.

Iemand die hier een antwoord of heeft?

Groet,
Ferenc
 
Hoi Demeter,

Grappig bij mij loopt hij wel gewon door.

Gooi hier eventjes een voorbeeldje van neer A.U.B.
 
Zeker raar, denk dat het aan mijn gehel doc. ligt. De code welke Wigi en Richard1970 naar voren hebben gebracht werkt ook niet in deze file, maar weer wel in een test file net zoals de in dit topic. mmmmmmmmm.

Maar hierbij post ik het bestand met de foutmelding.
Bij opening wordt er direct gecontroleerd, alleen in het bereik J3:J4, deze werkt wel, zie melding tabblad 'menu'.

Ga je naar tabblad 'Totaal' en klik je hier op button bij kolom J, dan geeft hij de foutmelding, dit komt omdat ik hier het bereik heb vergroot naar J6, en hierin is J5 leeg.

In een test file gaat het van een leien dakje.
damn, seems so easy............

Groet,
Ferenc
 

Bijlagen

Hoi Demeter,

Zoiets dan
Code:
Sub test()
Dim c As Range
Dim d As Integer

d = 0

For Each c In Range("J3:J6")
    [COLOR="Red"]If c.Text <> "" Then[/COLOR]
        If DateDiff("m", Now, CDate(c)) <= 2 And CDate(c) >= Now Then
            c.Interior.ColorIndex = 3
            d = d + 1
        Else
            c.Interior.ColorIndex = 0
        End If
    [COLOR="red"]End If[/COLOR]
Next

If d > 0 Then
     MsgBox "Let op!!! Er moeten " & d & " artikelen gekeurd worden."
End If

End Sub
 
uhhhhhhhhhhh,

Dat werkt.
Maar waarom werkt het niet als je c <> "" in dezelfde regel plaatst als de adere twee?
Die optie had ik zelf al wel gehad.

Thanks Spidie. :thumb:


Groet,
Ferenc
 
Hoi Demeter,

Ik denk omdat VB de hele regel test.

In bijvoorbeeld VB.Net heb je de optie ANDALSO. Dan wordt er eerste op het ene getets en dan op de andere. VBE heeft dit niet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan