Microsoft 365 traduire une formule en code vba

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à touts et à tous :)

Je bute sur la traduction d'une formule en code vba .... malgré mes essais, je n'y arrive pas :

J'ai par exemple :
- en cellule D5 une date "05.03.22",
- en cellule E5, je voudrais le résultat de sous condition ajouter 3 jours à la différence entre "D5 date "05.03.22" et aujourdhui().
(résultat attendu : résultat de la formule en H5)

J'en suis arrivé à ce code mais ça ne fonctionne pas :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("e5:e10")) Is Nothing Then
    If ActiveCell.Offset(0, 1) = "n/c" Then: ActiveCell.Offset(0, -1).Value = "=TODAY()- ActiveCell.Offset(0, -1)+3"
End If
End Sub
Auriez-vous le bon code ?
Je joins un petit fichier test,
Je vous remercie,
lionel :)
 

Pièces jointes

  • rappel_date.xlsm
    17.6 KB · Affichages: 4
Solution
Bonjour Lionel,
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(ActiveCell, Range("e5:e10")) Is Nothing Then
    If ActiveCell.Offset(0, 1) = "n/c" Then ActiveCell = [TODAY()] - ActiveCell.Offset(0, -1) + 3
    ActiveCell.NumberFormat = "General"
End If
End Sub
Tu peux remplacer [TODAY()] par Date...

A+

job75

XLDnaute Barbatruc
Bonjour Lionel,
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(ActiveCell, Range("e5:e10")) Is Nothing Then
    If ActiveCell.Offset(0, 1) = "n/c" Then ActiveCell = [TODAY()] - ActiveCell.Offset(0, -1) + 3
    ActiveCell.NumberFormat = "General"
End If
End Sub
Tu peux remplacer [TODAY()] par Date...

A+
 

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T