Hier et aujourd'hui grace a une cellule VBA

bonjour a tous

j'aimerais que quand la cellule "A1" est égal a 1 ça m'indique la date hier

et quand la cellule "A1" est égal a 0 ça m'indique la date aujourd'hui

tout ça en VBA et au format date pas de "NOW" car j'ai une macro après qui ne prend en charge que les dates

merci pour vos réponse

Bonjour,

si j'ai bien compris, une solution via une macro événementielle à mettre dans le code de la feuille où tu veux qu'elle s'applique.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Application.EnableEvents = False
If Target = 1 Then Target = Now() Else Target = Now() - 1
Target.NumberFormat = "dd/mm/yy"
End If
Application.EnableEvents = True
End Sub

Bonjour

Bonjour h2so4

caje17 a écrit :

au format date pas de "NOW"

Now retourne aussi l'heure

Remplaces dans la macro de h2so4

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Then
    Application.EnableEvents = False
    'If Target = 1 Then Target = Now() Else Target = Now() - 1
    If Target = 1 Then Target = Date Else Target = Date - 1
    Target.NumberFormat = "dd/mm/yy"
  End If
  Application.EnableEvents = True
End Sub

re bonjour merci de vous interesser a mon cas

je ne peut pas adapter votre macro car dans la cellule il faut:

ma macro qui suit ne supporte que le format date

il faut que si en" N1" =1 il faut qu'il affiche la date du jour comme si on appuyait sur ctrl point virgule(le meme format)

il faut que si en "N1" =0 il faut qu'il affiche la date d'hier

16diversw.xlsx (10.28 Ko)

ce encore moi

ou j'ai une autre demande avoir la DATE-5h00 mais au format DATE tout ca en VBA svp

merci encore

re

de l'aide svp merci

Bonjour

Remplaces la macro actuelle par celle-ci

La cellule G1 sera actualisée chaque fois que la page sera recalculée

Private Sub Worksheet_Calculate()
  Application.EnableEvents = False
  If Range("N1") = 1 Then Range("G1") = Date Else Range("G1") = Date - 1
  Range("G1").NumberFormat = "dd/mm/yyyy"
  Application.EnableEvents = True
End Sub

re merci pour ta reponse mais j'ai une erreur d'execution"1004"

erreur definie par l'applicaitiion ou par l'objet

l'erreur ce situe au niveau de:

Private Sub Worksheet_Calculate()

Application.EnableEvents = False

If Range("N1") = 1 Then Range("G1") = Date Else Range("G1") = Date - 1

Range("G1").NumberFormat = "dd/mm/yyyy"

Application.EnableEvents = True

End Sub

Bonjour

Fournis le fichier avec l'erreur

mon fichier est trop lourd

il fait 396ko

j'ai reussi

merci

29novembre-2014.rar (288.18 Ko)

Bonsoir

Quand je te demande le fichier avec l'erreur, ce n'est pas la peine de fournir un fichier sans l'erreur

Donc je ne peux pas t'aider

Comment fait tu pour arriver à l'erreur ?

Juste pour info : Al fin de la procédure Private Sub Worksheet_Change(ByVal Target As Range)

Il faut réinitialiser les événements

Modifies la fin de la macro

    End If
    Application.EnableEvents = True    'on réactive les macro événementielles
End Sub

bonjour desolé

je me suis tromper de fichier

je te met celui avec l'erreur

merci encore

14novembre-2014.rar (291.92 Ko)

Bonjour

Enlèves la protection de la feuille et refais un test

Ta macro pourrait ressembler à ça

Private Sub Worksheet_Calculate()
gr
  ActiveSheet.Unprotect "caje17"
  Application.EnableEvents = False
  If Range("N1") = 1 Then Range("G1") = Date Else Range("G1") = Date - 1
  Range("G1").NumberFormat = "dd/mm/yyyy"
  Application.EnableEvents = True
 ActiveSheet.Protect "caje17"
End Sub

merci beaucoup ca fonctionne mais sait tu pourquoi il me déactive toujours la dates d'hier meme quand on a la date d'aujourd'hui

Bonsoir

Désolé mais je ne sais pas

merci quand meme

merci pour tout

Rechercher des sujets similaires à "hier aujourd hui vba"