Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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+
 

job75

XLDnaute Barbatruc
Cela dit pourquoi du VBA ? Formule meilleure en E5, à copier vers le bas :
Code:
=SI(ESTNUM(D5)*(F5="n/c");AUJOURDHUI()-D5+3;"")
 

Pièces jointes

  • rappel_date(1).xlsm
    15 KB · Affichages: 3
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…