• 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 1-1-1900???

Status
Niet open voor verdere reacties.

Lampie173

Gebruiker
Lid geworden
21 jan 2012
Berichten
154
Goedenavond allen,

In bijgevoegd bestandje loop ik tegen een probleempje op.
In werkblad 2 in de bereiken F8:F49 en O21:32 worden, middels een macro, willekeurig oplopende datums ingevoerd.

Cel J6 op werkblad 1 bevat steeds een bepaalde (eind)datum.

Als de beide bereiken (F8:F49 en O21:O32) op werkblad 2 geen datums bevatten en dus leeg zijn, moet in cel J6 de datum vanuit cel J6 op werkblad 1 worden ingevuld.
In cel J6 staat een formule:
Code:
=ALS(EN(MAX(F8:F49;O21:O32;1)=0);Blad1!J6;MAX(F8:F49;O21:O32;1))

Maar wat ik ook wijzig:

In Blad 2 cel J6 wijzigt steeds in 1-1-1900 en niet 15-9-2020

Ik hoop dat het een beetje duidelijk is,

Hopend op een reactie,

groet,

Toon
 

Bijlagen

  • Test bestand.xlsm
    16,5 KB · Weergaven: 32
Dat komt omdat de formule het cijfer 1 oplevert.
Een 1 in datum notatie is 1-1-1900.
 
Het change event bevat ook niet logische zaken.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("C8:C15,C18:C23,C26:C30,C33:C35,C38:C42,C44:C49,I21:I24,I27:I28,I31:I32")) Is Nothing Then
    Target.Offset(, 3 - 3 * (Target.Column = 9)) = IIf(Target.Value = 0, "", Date)
  End If
End Sub
 
Hoi VenA,

Dank voor je bericht.

Chips...!
Ik vergeet erbij te melden dat in bereiken C8:C49 en/of O21:O32 een getal moeten ingevoerd en dat dat in de andere twee bereiken de datum komt te staan.

De code in jouw bericht ziet er anders uit dan wat ik in het werkblad heb staan.

deze werkt wel, maar hoe moet je mij niet vragen:eek:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
        
    If Not Intersect(Range("C8:C15,C18:C23,C26:C30,C33:C35,C38:C42,C44:C49"), Target) Is Nothing Then
    If Target.Column = 3 Then Target.Offset(, 3) = IIf(Target.Value = 0, "", Date)
   End If
    If Not Intersect(Range("I21:I24,I27:I28,I31:I32"), Target) Is Nothing Then
     If Target.Column = 9 Then Target.Offset(, 6) = IIf(Target.Value = 0, "", Date)
    End If
    End Sub
 
Er zal niet veel gebeuren als je in kolom O wat invoert. Jouw code is dubbelop.

Welke kolommen gebruik je hier?
Code:
Range("C8:C15,C18:C23,C26:C30,C33:C35,C38:C42,C44:C49")
 
In bereik I21:I32 worden kunnen ook getallen ingevoerd worden en dan wordt in O21:O32 ook een datum toegevoegd.

Maar jij het het net over dat een 1 geretourneerd wordt vanuit de formule genoemd in #1.

Hoe dan?
Want werkt max() niet met datums?

Nogmaals dank voor je tijd
 
MAX werkt prima met datums. Max(0;0;1) = ?
 
Laatst bewerkt:
bedoel je zoiets?
 

Bijlagen

  • Test bestand (1).xlsm
    16,7 KB · Weergaven: 30
Goedenavond emields,

Dat werkt goed!
Maar waarom gebruik jij de (,1) niet in de max() formule?
 
Omdat als alle cellen leeg zijn Excel die 1 ziet als max.
Als er geen bijkomende vragen zijn vergeet dan niet, in uw eerste post, de vraag als opgelost te zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan