• 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-notitie verkeerd, ondanks of dankzij VBA?

  • Onderwerp starter Onderwerp starter Hans
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Hans

Gebruiker
Lid geworden
19 dec 2016
Berichten
98
Geachte lezers

De datum wordt verkeerd genoteerd/veranderd in een cel.

Ik heb met behulp van mede forumleden een code toegevoegd aan een Excel bestand, die zorgt er voor dat in een cel/kolom de datum wordt genoteerd of gewijzigd als in een andere cel/kolom een mutatie plaatsvindt.
Het gekke is, de datum wordt sinds een paar dagen verkeerd genoteerd. Eergisteren (1 februari) kwam er te staan 02-01-2017, gisteren kwam de juiste datum te staan, maar vandaag (3 februari) komt er weer een verkeerde datum, nu staat er 02-03-2017.
Heeft iemand enig idee waar dat aan ligt? De cel eigenschappen staan goed volgnes mij, datumnotatie

De code die ik heb gekregen en tot nu toe werkte:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 3, 4, 5, 8, 9, 10, 11, 12, 14, 13, 15, 16, 17, 18 'Actieve kolom = C of D
Call KolomS("S", Target.Row)

End Select
End Sub

Sub KolomS(kolom As String, regel As String)
If Range(kolom & regel).Value <> Date Then
Range(kolom & regel) = Format(Date, "dd-mm-yy")
End If
End Sub

Sub KolomE(kolom As String, regel As String)
' de code voor behandeling van Kolom E
End Sub
 
Je moet Excel ondubbelzinnig "vertellen" wat je wilt hebben als resultaat. VBA "denkt" in de amerikaanse datumnotatie namelijk...
Code:
Sub DatumInCel()

    ActiveCell.Value = DateSerial(Year(Date), Month(Date), Day(Date))

End Sub
 
Die datum van gisteren was natuurlijk ook fout. 02-02. Eerst de maand en dan de dag.
 
Je moet Excel ondubbelzinnig "vertellen" wat je wilt hebben als resultaat. VBA "denkt" in de amerikaanse datumnotatie namelijk...
Code:
Sub DatumInCel()

    ActiveCell.Value = DateSerial(Year(Date), Month(Date), Day(Date))

End Sub

Hoi Ginger

Dank je wel voor je reactie.

Ik ging daar ook al een beetje van uit en heb geprobeerd er een Europese notatie van te maken maar dat haalde niets uit. Waarschijnlijk omdat VBA de andere instellingen (lees: celeigenschappen) overschrijft?

Hoe dan ook, ik snap je redenatie alleen wil ik de normale Europese notatie, dus dd-mm-jjjj. Alleen ben ik als leek niet zo maar bij machte om de code uit jouw reactie toe te voegen aan mijn code. Kan jij die in zijn geheel mét jouw correctie afbeelden?

Vast bedankt, groet Hans
 
Tja, zó heel moeilijk zou het niet moeten zijn toch? ;-)

Code:
Sub KolomS(kolom As String, regel As String)
If Range(kolom & regel).Value <> Date Then
Range(kolom & regel) = [COLOR="#0000CD"][B]DateSerial(Year(Date), Month(Date), Day(Date))[/B][/COLOR]
End If
End Sub

Sub KolomE(kolom As String, regel As String)
' de code voor behandeling van Kolom E
End Sub
 
Tja, zó heel moeilijk zou het niet moeten zijn toch? ;-)

Code:
Sub KolomS(kolom As String, regel As String)
If Range(kolom & regel).Value <> Date Then
Range(kolom & regel) = [COLOR="#0000CD"][B]DateSerial(Year(Date), Month(Date), Day(Date))[/B][/COLOR]
End If
End Sub

Sub KolomE(kolom As String, regel As String)
' de code voor behandeling van Kolom E
End Sub

Het werkt. Zo moeilijk was het niet, na de zó goede uitleg ;-)

Dank u!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan