Archief - [PROG][VBA] If-test met =now()

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Darkness

Legacy Member
Hallo,

Ik probeer een kleine macro te schrijven die bij het openen van een bestand nagaat of een bepaalde datum voorbij is en zo ja een rij invoegt bovenaan de excel-sheet met bepaalde tekst in.

Ik heb iets dat logischerwijs zou moeten kloppen, maar er is een probleempje met de if-test want de then wordt altijd uitgevoerd, ook al is de datum nog niet voorbij. Het kan bijna niet anders dan een klein probleempje zijn, maar ik vind het niet. Hopelijk iemand van jullie wel...

Bedankt

De code:
Code:
Sub Macro1()
    Range("IV65528").Select
    ActiveCell.FormulaR1C1 = "=NOW()"
    
    If ActiveCell.FormulaR1C1 > "5/14/2006 10:01" Then
        Rows("1:1").Select
        Selection.Insert Shift:=xlDown
        Range("B1:P1").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Selection.Merge
    With Selection.Interior
        .ColorIndex = 44
        .Pattern = xlSolid
    End With
    Selection.Font.ColorIndex = 3
    ActiveCell.FormulaR1C1 = "BOEM"
    With ActiveCell.Characters(Start:=1, Length:=4).Font
        .Name = "Arial Unicode MS"
        .FontStyle = "Standaard"
        .Size = 100
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 3
    End With
    Else
    End If
    Range("IV65528").Select
    ActiveCell.FormulaR1C1 = ""
    Range("A1").Select

End Sub

SKAFaN

Legacy Member
ActiveCell.FormulaR1C1 = "=NOW()"

ik weet niet hoe da zit in VBA maar in vb.net is da gewoon

blabla = now()

zonder " 's enzo

Darkness

Legacy Member
dat gedeelte werkt nog, het probleem is dat de conditie altijd true is, no matter what de datum is :(

Duffman-

Legacy Member
Darkness zei:
dat gedeelte werkt nog, het probleem is dat de conditie altijd true is, no matter what de datum is :(

hm
mss gewoon =nu() ?

en kunde is ni proberem net
=today() ?

de fout kan moelijk zitten in die IF hoor ... alleh ja die is toch juist zeker


en ge hebt daar staan
ActiveCell.FormulaR1C1 = "=NOW()"
moet da ni gewoon zijn
ActiveCell.FormulaR1C1 = NOW()
zoals SkaFan al aanhaalde

Darkness

Legacy Member
al die mogelijkheden geprobeerd, zonder resultaat :(

als ik dit zet
ActiveCell.FormulaR1C1 = "=Now()"
doet hij altijd boem, ongeacht de tijd

als ik dit zet
ActiveCell.FormulaR1C1 = Now()
doet hij nooit boem, ongeacht de tijd

:s

SKAFaN

Legacy Member
in vs.net kan je een "stop" zetten (ne bruine bol), zo kan je stoppen met je programma tijdens een bewerking en alles volgen...

indien je dit niet kan moet je eerst eens 2 tekstvakken maken en de 2 datums daarin plaatsen. Dan kan je kijken als de datums juist zijn é ;)


als controle moet dit toch enige vordering bieden ... (denk ik :))

daVinci

Legacy Member
Je check op datum in de code, moet dat niet in Amerikaanse notatie zijn (yyyy/mm/dd ipv dd/mm/yyyy)? En eventueel met een #-teken ervoor.

Duffman-

Legacy Member
Mja doe is overal tussen nen messagebox van elke waarde hé, zo kunt ge zien of alle waarden juist zijn want er zit echt geen fout in die if-clausule denk ik ze.

daVinci

Legacy Member
Ik heb het begin van de code een beetje herschreven, maar die oplossing werkt. Ipv de huidige datum in een cell te schrijven heb ik hem gewoon in een variabele gestoken.

Code:
Dim vandaag As Date
vandaag = Now()
    
    
If vandaag > #5/14/2006 10:01:00 AM# Then

Het kan zijn dat de rest van de code ook best een kleine wijzigig krijgt (dan denk ik in de eerste plaats aan het terug verwijderen van de datum in de cell IV65528 (else clausele)

Darkness

Legacy Member
idd, dat laatste werkt. gelukkig, want ook in de cellen kwamen de juiste waardes te staan.

bedankt!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan