Envoyé par
Shaplow
J'ai une formule excel qui marche très bien: "=IF(E3 - D3)< 1/24; 1/24; E3 - D3)
Plus simple : =MAX(1/24;E3-D3).
Il y a aussi un petit détail qui me surprend : tu utilises les fonction anglophones ( IF ) mais les séparateur francophones ( ; )...
Envoyé par
Patrice740
Autant faire simple :
Bonjour Patrice,
Je me permets de corriger juste un détail dans ta formule (un D à la place d'un E).
f = "=IF((E" & i & "-D" & i & ")< 1/24, 1/24," & "E" & i & "-D" & i & ")"
C'est la formule qui convient si on veut l'implanter dans une cellule en utilisant VBA.
En revanche, si on veut l'évaluer dans VBA, par exemple avec un Evaluate, ce sera plutôt :
"IF(" & Cells(i, "E") & "-" & Cells(i, "D") & "<1/24,1/24," & Cells(i, "E") & "-" & Cells(i, "D") & ")"
ou en pur VBA sans Evaluate :
IIf((Cells(i, "E") - Cells(i, "D") < 1/24, 1 / 24, Cells(i, "E") - Cells(i, "D"))
ou encore, en utilisant ma simplification de départ avec un WorksheetFunction :
WorksheetFunction.MAX(1 / 24, Cells(i, "E") - Cells(i, "D"))
Partager