Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Valeur ou Formule ??

3 réponses
Avatar
philou36
Bonjour,
Le 3 Avril je vous ecrivais =E7a :
Voil=E0, j'ai un tableau qui se remplit selon plusieurs crit=E8res.
Une de ces colonnes s'intitule 'Quotit=E9'. La valeur qui se trouve dans
cette
colonne est d=E9finit par une formule mais peut =EAtre modifi=E9 par
l'utilisateur.

Le souci, c'est qu'en cas de modification, la formule est remplac=E9e
par une
valeur. Comment faire pour qu'=E0 chaque fois que l'on resaisit les
param=E8tres
du tableau, cela puisse =EAtre r=E9intialis=E9 ??


Patrick BASTARD a eu la gentillesse de me r=E9pondre :
http://cjoint.com/?edwxTyT5Q2

En modifiant A3 ou B3, la formule revient en C3

Le code (Alt + F11), dans Feuil1 :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B3]) Is Nothing Then
[C3].FormulaR1C1 =3D
"=3DRC[-2]+RC[-1]"
End Sub


Effectivement, =E7a marche mais pour une addition mais comment faire
pour des
formules plus complexe telles que :

=3DSI(B9<>"";SI(B9>$C$3;"";$C$5);"")

Je vous joins mon tableau pour que tout cela soit plus clair.
http://cjoint.com/?efgoD1mLUE
Un grand merci par avance

Bonne Journ=E9e

3 réponses

Avatar
francois.forcet
Salut à toi

Je n'ai pas trés bien compris le fonctionnement
Mais je peux te proposer ce code modifié ainsi plus facile à
utiliser :


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B3]) Is Nothing Then
[C3].FormulaLocal = "£+B3"
End Sub

Pour ta formule plus compexe celà donne :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B3]) Is Nothing Then
[C3].FormulaLocal = "=SI(B9<>"""";SI(B9>$C$3;"";$C$5);"""")"
End Sub

Tu peux mettre directement la formule aprés [C3].FormulaLocal =

Si tu as dans ta formule une double cote ("") il faut l'associer à
double cote supplémentaire ("""")

J'espère que celà répond à ton besoin

Dis moi !!!!
Avatar
francois.forcet
J'ai commis une petite erreur pour la formule plus complexe
J'ai oublié une double cote :

Au lieu de B9>$C$3;"";$C$5
Mets B9>$C$3;"""";$C$5
Ce qui donne :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B3]) Is Nothing Then
[C3].FormulaLocal = "=SI(B9<>"""";SI(B9>$C$3;"""";$C$5);"""")"
End Sub

Mille excuses
Avatar
philou36
Bonsoir,

C'est juste GENIAL, un grand merci à toi pour ton précieuse aide.

Bonne soirée.

On 6 avr, 17:44, wrote:
J'ai commis une petite erreur pour la formule plus complexe
J'ai oublié une double cote :

Au lieu de B9>$C$3;"";$C$5
Mets B9>$C$3;"""";$C$5
Ce qui donne :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B3]) Is Nothing Then
[C3].FormulaLocal = "=SI(B9<>"""";SI(B9>$C$3;"""";$C$5);"""")"
End Sub

Mille excuses