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

Datum. =NU()

Status
Niet open voor verdere reacties.

PKingswood

Gebruiker
Lid geworden
18 sep 2004
Berichten
172
Ik heb een werkblad. Hier voer ik de gegevens van vandaag in.
Vervolgens activeer ik een macro. Deze macro verwerkt de gegevens en plaatst daar de huidige datum bij =NU().
De volgende dag wil ik weer gegevens toevoegen. Hier ontstaat mijn probleem.
- De datum die gisteren automatisch is ingevoerd, krijgt de datum van de huidige dag. In die cel staat immers de formule =NU().

Hoe kan ik de huidige datum (met een macro) invoegen zonder dat deze datum in de toekomst automatisch wordt aangepast aan de dan zijnde datum?
 
Beste P,

Door de cel te kopiëren en de waarden te plakken.
Of in de macro niet de formule =NU() in te voeren, maar bijv. Range("A1").Value = Now()

groeten,

Richard
 
Helaas Richard

Als ik kies voor kopieëren en waarden plakken, wordt de datum omgezet naar een serieel getal.
Gebruik ik de formule NOW() in een cel, krijg ik de foutmelding: Typen komen niet overeen.
Ps. Hoewel ik tijdens het opnemen van de macro =NU() heb ingetypt, staat in VisualBasic de formule =NOW().
 
Laatst bewerkt:
Hoi P,

VBA is in het engels, dus de functie NU() wordt omgezet in NOW().
Alleen de opmaak van de cel moet nog aangepast worden:

Je kunt met de macrorecorder een celopmaak wijzigen, en dan kiezen wat je wilt, bijv:
Selection.NumberFormat = "dd/mm/yy;@"

Groeten,

Richard
 
Nog een mogelijkheid is dit :

Zet dit in This Workbook

Private Sub Workbook_Open()
If Sheets("Factuur").Range("C14") = "" Then
Sheets("Factuur").Range("C14") = Date
End If
End Sub

Aan te passen tabblad naam "Factuur" en de cel (C14).

Bij het openen van de map wordt er gezien in cel C14 of er iets in de cel staat,
staat er niets in wordt de datum van vandaag er automatisch in gezet.

Nu zal de datum niet meer veranderen bij het heropenen van de map.

Pierre

PS : vergeet niet de formule te verwijderen (=NU().)
 
Laatst bewerkt:
Het is allemaal gelukt wat ik wil. Als ik nieuwe gegevens invoer en ik klik op de knop, worden de gegevens verwerkt.
Nu bracht JPVS mij op het idee dat het nog gebruiksvriendelijker kan. De gegevens kunnen direct automatisch verwerkt worden als ik deze heb ingevoerd, zonder dat ik daarvoor op een knop hoef te klikken.
Nu is het zo dat onderstaande routine wordt geactiveerd als ik op de opdrachtknop klik. Hoe pas ik deze routine aan zodat ik niet op de knop hoef te klikken maar dat deze routine automatisch wordt uitgevoerd als ik in cel B2 gegevens heb ingevoerd? Wat moet ik eventueel nog meer aanpassen?

Sub Pascal()
Range("A2").Select
Selection.NumberFormat = "dd/mm/yyyy;@"
ActiveCell.FormulaR1C1 = "=NOW()"
Range("A2").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A2:B2").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown
Selection.Font.Bold = False
ActiveSheet.ChartObjects("Grafiek 2").Activate
ActiveChart.PlotArea.Select
Windows("Persoonlijk gewicht.xls").SmallScroll Down:=3
Windows("Persoonlijk gewicht.xls").SmallScroll Down:=3
ActiveChart.SetSourceData Source:=Sheets("Pascal").Range("A3:B24"), PlotBy _
:=xlColumns
Windows("Persoonlijk gewicht.xls").SmallScroll Down:=-6
Range("B2").Select
End Sub
 
Laatst bewerkt:
PKingswood zei:
Hoe pas ik deze routine aan zodat ik niet op de knop hoef te klikken maar dat deze routine automatisch wordt uitgevoerd als ik in cel B2 gegevens heb ingovoerd? Wat moet ik eventueel nog meer aanpassen?

Via EXTRA - MACRO - VISUAL BASIC EDITOR selecteer je het werkblad waar je B2 wilt invoeren.
Plak onderstaande code er in en bij het veranderen van cel B2 wordt macro pascal gestart.
(zie eventueel bijlage)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
pascal
End If
End Sub
 
Laatst bewerkt:
Roncancio,
Als ik jouw routine erbij plak, wordt ook dat stukje pas geactiveerd op het moment dat ik op de opdrachtknop klik. Dit werkt dus hellaas niet.
 
PKingswood zei:
Roncancio,
Als ik jouw routine erbij plak, wordt ook dat stukje pas geactiveerd op het moment dat ik op de opdrachtknop klik. Dit werkt dus hellaas niet.

Toch niet.
In bijgevoegd bestand heb ik dezelfde code geplaatst.
Zodra cel B2 gewijzigd wordt en je gaat naar een andere cel toe wordt de code geactiveerd.
 
Laatst bewerkt:
Dit werkt inderdaad.
Maar waarom kan ik in jouw bestand nergens de opdracht vinden die de inhoud van cel B2 controleerd? Of moet ik deze niet in het VisualBasic-venster zoeken?
 
PKingswood zei:
Dit werkt inderdaad.
Maar waarom kan ik in jouw bestand nergens de opdracht vinden die de inhoud van cel B2 controleerd? Of moet ik deze niet in het VisualBasic-venster zoeken?

Omdat ik er verder niets in de code over heb neergezet.
Via:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
pascal
End If
End Sub

... wordt de macro Pascal gestart als cel B2 in het werkblad wijzigt en je de cel verlaat.
De controle vindt dus plaats in de macro Pascal en dus niet in mijn code. Mijn code is bedoelt om je vraag te beantwoorden hoe je de macro Pascal kan aanroepen zonder op een knop te hoeven klikken.
 
Aha, nu zie ik het!
Ik had nog niet het verschil opgemerkt tussen Excel-objecten en Modules.
Als ik nu in B2 gegevens heb ingevoerd en de cel verlaat, worden de gegevens direct automatisch verwerkt. Precies wat ik wil. Je bent geweldig. Dankjewel. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan