VBA Excel date sans mise à jour

Bonjour,

Je ne suis pas expert en VBA mais j’ai essayé un codage pour que:

Si je renseigne A, la date du jour s’affiche et reste figée dans B (quand je supprime le contenu de A, le contenu de B doit disparaitre)

Si je renseigne AH, la date du jour s’affiche et reste figée dans AK (quand je supprime le contenu de AH, le contenu de AK doit disparaitre)

Private Sub Worksheet_Change(ByVal Target As Range)

Dim h, iSct As Range
Set iSct = Intersect(Target, Range(« A:A »))
If iSct Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each h In iSct.Cells
If IsEmpty(h) Then
h.Offset(0, 1) = «  »
Else
h.Offset(0, 1) = Format(Now, « mm/dd/yy »)
End If
Next
Application.EnableEvents = True

Set iSct = Intersect(Target, Range(« AH:AH »))
If iSct Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each h In iSct.Cells
If IsEmpty(h) Then
h.Offset(0, 3) = «  »
Else
h.Offset(0, 3) = Format(Now, « mm/dd/yy »)
End If
Next
Application.EnableEvents = True

End Sub

Le problème est que le code ne fonctionne que la première sequence et je ne parviens pas à avoir de résultat pour AH;

Merci pour votre coup de main.
date-vba.xlsm (14,3 Ko)

Hello,

Je me permet pour faire cela moi j’utilise cette formule

=SI(AH<1;"";SI(AK<>"";AK;MAINTENANT()))

Il y a juste a activé le calcul itèratif

Salutation

Bonjour,
A tester
date-vba.xlsm (14,0 Ko)

Bonjour,

Je veux mettre la date dans la troisième colonne après AH (AK)

Bonjour,

J’ai tenter cette formule, elle fonctionne très bien. Le problème est qu’il faut regulièrement activer le calcul itéractif. C’est pour eviter de revenir chaque fois sur la même opération que j’ai essayer en VBA.

Bonjour,

Merci infinement, j’ai trouvé la solution avec une petite modification du code que vous m’avez proposé.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim h, iSct As Range

Application.EnableEvents = False
If Not Application.Intersect(Target, Range(« A:A »)) Is Nothing Then
If Target.Value = «  » Then
Target.Offset(0, 1) = «  »
Else
Target.Offset(0, 1) = Format(Now, « mm/dd/yy »)
End If

End If
If Not Application.Intersect(Target, Range(« AH:AH »)) Is Nothing Then
If Target.Value = «  » Then
Target.Offset(0, 3) = «  »
Else
Target.Offset(0, 3) = Format(Now, « mm/dd/yy »)
End If
End If
Application.EnableEvents = True

End Sub

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.