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

Automatisch vergeven datum

Status
Niet open voor verdere reacties.

Antonius100

Gebruiker
Lid geworden
2 dec 2008
Berichten
9
Goedemiddag allen,

Ik heb een vraag over een macro in excel.
Aan de hand van een timer wil ik graag dat iedere dag om 08:00 de datum van die dag in een cel geplaatst wordt. Dus voor vandaag zou bv in cel A1 02-12-2008 moeten komen en morgen om 08:00 uur moet in cel A2 03-12-2008 komen te staan. Overmorgen in cel A3 03-12-2008 enz enz.
Een deel van de macro heb ik al af maar echter nog niet alles.
Code:
Option Explicit

Sub laatste_regel()
Application.OnTime Now ("08:00:00")
Dim iRij As Integer
    Range("H11").Select
    ActiveCell.FormulaR1C1 = "=TODAY()"
    Cells(Rows.Count, 1).End(xlDown).Offset(1).select
    Range("A" & iRij - 0).Select
End Sub

Kunnen jullie mij vertellen wat ik fout doe of mis ??
Met vriendelijke groet,

Antoon
 
Laatst bewerkt:
Waarom is het belangrijk dat dat om 8u er gezet wordt? Een formule zoals =VANDAAG() past zich toch steeds aan (bij herberekenen van de sheet).

En al die Select's zijn niet nodig.

Wat is iRij trouwens? Waarom de - 0 in iRij - 0?
 
Waarom is het belangrijk dat dat om 8u er gezet wordt? Een formule zoals =VANDAAG() past zich toch steeds aan (bij herberekenen van de sheet).

En al die Select's zijn niet nodig.

Wat is iRij trouwens? Waarom de - 0 in iRij - 0?
8 uur is belangrijk omdat het excelbestand dan opgestart wordt. En je hebt gelijk dat deze formule zich weer aanpast, echter zoek ik nog de juiste formule zodat die formule vast blijft, oftewel dat deze niet steeds herberekent wordt.
Die iRij houdt toch in dat iedere datum van een nieuwe dag in een cel daaronder weergeven wordt ? Of heb ik het mis.
Alvast bedankt voor je hulp.

Met vriendelijke groet,

Antoon
 
Antoon, om een datum vast te zetten laat je de cel verwijzen naar zichzelf bv.

Code:
[A1].Value = [A1].Value

Mvg

Rudi
 
Waar vul je de variabele iRij dan?

Op het moment dat de code de regel met iRij uitvoert, is iRij niet gevuld, dus 0.

Dan zou je dus in de laatste regel cel A0 selecteren... :eek:

En als je in de laatste cel iets selecteert, maar vervolgens tot cel H11 selecteert, dan heeft dat niet veel zin. (Aangenomen dan nog dat er gedurende de hele dag geen enkele keer een andere cel geselecteerd wordt).

Wigi
 
Waar vul je de variabele iRij dan?

Op het moment dat de code de regel met iRij uitvoert, is iRij niet gevuld, dus 0.

Dan zou je dus in de laatste regel cel A0 selecteren... :eek:

En als je in de laatste cel iets selecteert, maar vervolgens tot cel H11 selecteert, dan heeft dat niet veel zin. (Aangenomen dan nog dat er gedurende de hele dag geen enkele keer een andere cel geselecteerd wordt).

Wigi

Ik heb nu die iRij eruit gehaald en het stukje van Rudi erin geplakt.
nu rest mij nog de vraag hoe ik de macro in een bepaalde sheet laat werken.
En Wigi weet je welke formule ik beter kan gebruiken als today dan ?
Alvast hartelijk dank.

Met vriendelijke groet,

Antoon

Code:
Sub laatste_regel()
Application.OnTime Now ("08:00:00")
    ActiveCell.FormulaR1C1 = "=TODAY()"
    [A1].Value = [A1].Value
    Cells(Rows.Count, 1).End(xlDown).Offset(1).select
    Range("A" & iRij - 0).Select
End Sub
 
Hier is de info over OnTime:

http://www.ozgrid.com/Excel/run-macro-on-time.htm

Bij Sub myMacro zal jij dan iets hebben van:

Code:
Sub MyMacro()

    Application.OnTime TimeValue("08:00:00"), "MyMacro"
    Sheets("naamvanhettabblad").Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = Date

End Sub

Spendeer ook aandacht aan de "kleine dingen" in de code: bij jou staat er Cells(Rows.Count, 1).End(xlUp).Offset(1)...

Dit wil zegggen dat je naar de laatste rij in kolom A gaat, dan nog naar beneden, en dan nog eens 1 cel naar beneden. Dit kan uiteraard niet.

Wigi
 
Laatst bewerkt:
Antoon, plak onderstaande in ThisWorkbook
Code:
Private Sub Workbook_Open()
Application.OnTime TimeValue("08:00:00"), "Datum_Plaatsen"
End Sub
en volgende in een standaardmodule
Code:
Option Explicit

Sub Datum_Plaatsen()
Dim ws As Worksheet, NewRow As Integer
Set ws = Sheets("Blad1")
NewRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1
ws.Range("A" & NewRow).FormulaR1C1 = Date
End Sub
en je hebt wat je wil

Mvg

Rudi
 
Antoon, plak onderstaande in ThisWorkbook
Code:
Private Sub Workbook_Open()
Application.OnTime TimeValue("08:00:00"), "Datum_Plaatsen"
End Sub
en volgende in een standaardmodule
Code:
Option Explicit

Sub Datum_Plaatsen()
Dim ws As Worksheet, NewRow As Integer
Set ws = Sheets("Blad1")
NewRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1
ws.Range("A" & NewRow).FormulaR1C1 = Date
End Sub
en je hebt wat je wil

Mvg

Rudi


Hallo Rudi en Wigi,

Allebei hartelijke bedankt voor jullie hulp.
Mij resten nog 2 vragen. Namelijk, wat is het verschil tussen jou code
Code:
NewRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1
ws.Range("A" & NewRow)
en de mijne
Code:
Cells(Rows.Count, 1).End(xlDown).Offset(1).select
?
Zou je hierover uitleg kunnen geven.
En nu in dit geval wil ik ook graag de inhoud van cellen kopieeren op een vast tijdstip via Application.OnTime TimeValue. Moet ik hiervoor een nieuw onderwerp aanmaken of kunnen we er hier verder over praten ??

Met vriendelijke groet,

Antoon
 
Antoon, wil je de laatsgevulde cel van een kolom weten is het raadzaam om van onder naar boven te zoeken omdat als je lege cellen in je kolom hebt, dit voor problemen kan zorgen. Wat betreft je tweede vraag start je misschien beter een nieuwe topic zodat deze onder de aandacht van meerdere mensen zal komen.

Mvg

Rudi
 
Antoon, wil je de laatsgevulde cel van een kolom weten is het raadzaam om van onder naar boven te zoeken omdat als je lege cellen in je kolom hebt, dit voor problemen kan zorgen. Wat betreft je tweede vraag start je misschien beter een nieuwe topic zodat deze onder de aandacht van meerdere mensen zal komen.

Mvg

Rudi

Okee dank jullie allemaal.
het heeft al veel geholpen.
Hoe zet ik trouwens deze vraag op opgelost ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan