Probleme condition avec date

Bonjour

je rencontre un soucis avec une condition et je ne comprends pas pourquoi elle s'exécute

datenow = Format(Now(), "dd/mm/yyyy")

Set ddl = Sheets("Admin").Range("AB16")

If (ddl <> datenow And Weekday(Now()) = 3) then

j'indique que datenow correspond à la date du jour soit 17/11/2020

j'indique que ddl est égale à une cellule ou est inscrit 17/11/2020

Aussi pourquoi ma condition s'exécute t'elle alors que ddl n'est pas différent de datenow et weekday est bien aujoud'hui car = 3

une idée car là je sèche?

merci par avance

Bonjour

Pourquoi utiliser NOW qui équivaut à MAINTENANT() (Date & heure)

Utilise DATE qui est équivalent à AUJOURDHUI() et ainsi tu évité le format qui passe le résultat en texte

datenow = Date

Set ddl = Sheets("Admin").Range("AB16")

If (ddl <> datenow And Weekday(Date()) = 3) Then

Re,

Pour éviter l'interprétation des formats de dates par excel je passe presque toujours par DateSerial. Essaie :

Dim datenow As Date
Dim ddl As Date

datenow = DateSerial(Year(Date), Month(Date), Day(Date))
ddl = DateSerial(Year(Sheets("Admin").Range("AB16").Value), Month(Sheets("Admin").Range("AB16").Value), Day(Sheets("Admin").Range("AB16").Value))
If (ddl <> datenow And Weekday(Now()) = 3) then...

[Édition]
Bonjour M12, nos posts se sont croisés...

bonsoir

heu... je ne sais pas .....

peut être que ça vous serait utile de vérifier si weekday(joursem) excel ou weekday de vba n'a pas plus d'argument qu'une date qui lui sont nécessaire pour vous donner le jour de la semaine

weekday(unedate) est une formule incomplète il lui manque l'argument region aussi bien pour la version excel(joursem) que la version vba

Sub test()
texte = "heu.. voyons voir" & vbCrLf
texte = texte & "aujourd'hui nous somme le : " & Format(Date, "dddd dd mmmm yyyy") & vbCrLf
texte = texte & "nous sommes donc le " & Weekday(Date) & " eme jour de la semaine " & vbCrLf
texte = texte & " ah!! non c'est pas ça mince alors !!!" & vbCrLf & "bon sang de bon soir mais  que ce passe t-il??" & vbCrLf
texte = texte & "nous somme peut etre le " & Weekday(Date, 2) & " eme jour de la semaine alors " & vbCrLf & vbCrLf
texte = texte & "ha ben oui là je comprends mieux " & vbCrLf & "il me manquait un argument a ma formule" & vbCrLf
texte = texte & "la formule est donc: weekday(unedate,region)" & vbCrLf
texte = texte & "faudra que j'essaie de ne pas oublier la prochaine fois " & vbCrLf
texte = texte & "l'argument region pour le bon gaulois que je suis c'est donc ""2""" & vbCrLf
texte = texte & " j'ai bien cru que mon pc perdait la boule, heureusement ca n'est que moi"
MsgBox texte
End Sub

j'ai tout dis

le post 1 réécrit correctement

datenow As Date, ddl As Range
datenow = Date
Set ddl = Sheets("Admin").Range("AB16")

If CDate(ddl) <> datenow And Weekday(datenow, 2) = 3 Then
'je traduis la formule pour voir si à sa lecture c'est bien cela que l'on veut
'si la date de ddl <> de datenow et que le jour de la semaine de datenow es 3(mercredi) alors

LOL

Re,

Mot de rire Patrick. Il y avait longtemps que je ne t'avais croisés...

cc ThauTheme oui je me ballade d'un forum à l'autre

le plaisir est partagé

que de grosse pointures dans le domaines excel :)

merci à tous pour vos contributions respectives.

je vais désormais pouvoir comprendre le pourquoi de mon erreur :)

par contre j'ai tenté d'adapter vos correctifs à tous et du coup j'ai un soucis avec l'option régionale citée

si je fais cela ca fonctionne

datenow = Date

ddl = DateSerial(Year(Sheets("Admin").Range("AB16").Value), Month(Sheets("Admin").Range("AB16").Value), Day(Sheets("Admin").Range("AB16").Value))
If (ddl <> datenow And Weekday(Date) = 4) Then

par contre si 'ajoute à weekday(Date,2) = 4

alors cela ne fonctionne plus , la macro ne se lance pas

Bonjour

je corrige à nouveau

 Dim datenow As Date, ddl As Date
    datenow = Date
    With Sheets("Admin")
        ddl = DateSerial(Year(.[AB16].Value), Month(.[AB16].Value), Day(.[AB16].Value))
    End With
    If ddl <> datenow And Weekday(Date, 2) = 4 Then 'Traduction:si ddl<> d'aujourd'hui est si aujourd'hui on est un jeudi alors
        '....faire ceci 
        '....ou cela 
        '....ou tout ce que tu peux bien vouloir faire
        'etc... 
    End If

le soucis c'est que je pense avoir compris le soucis

Weekday(Date, 2) donne 3 alors que je dis = 4 pour mercredi

alors que Sub test()
MsgBox (vbWednesday)
End Sub

retourne bien 4

donc cela prete plus a confusion selon moi

Re,

Ce que le "Grand GOUROU" n'a pas retenu, c'est que le membre qui poste, n'est pas obligatoirement résidant en EUROPE

Donc avec sa version --> Weekday(Date, 1)

re

oui M12

en effet mettre bien évidement son code region

bien vu pour la remarque

et gourou c'est qui celui là

merci à vous: logique en même temps

faut savoir être chauvain de temps en temps ;)

Rechercher des sujets similaires à "probleme condition date"