Créer une ligne de calcul en vba sans perdre la formule

Novice avance !?

XLDnaute Occasionnel
bonsoir,

le problème a peut-être une solution des plus simple et je passe complètement à côté !?

mon code vba prend la valeur d'une celulle et d'une autre et en calcule simplement la somme dans une autre.

exemple pour faire simple :
Code:
cells(3,5)=cells(1,5)+cells(2,5)
mais n'aparait biensur en E3 donc que la valeur de la somme calculer en vba de E1 + E2

maintenant si je change manuellent la valeur de E1 et bien E3 ne recalcule rien puisque qu'il n' y a pas de formule.

comment remplacer
Code:
 cells(3,5)=cells(1,5)+cells(2,5)
par un code qui en cells(3,5) génère une formule pour calculer les 2 autres cellules ?

un problème simple avec une explication peut-être compliquer...désoler

merci par avance
bon week-end
 

Papou-net

XLDnaute Barbatruc
Re : Créer une ligne de calcul en vba sans perdre la formule

Bonsoir Novice avance,

Ajoute simplement ce code sur le module de ta feuille de caclcul :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E1:E2")) Is Nothing Then Range("E3") = Range("E1") + Range("E2")
End Sub
Bon WE.

Cordialement.
 

Dranreb

XLDnaute Barbatruc
Re : Créer une ligne de calcul en vba sans perdre la formule

Bonjour.
Un peu nébuleux tout ça, je trouve…
comment remplacer
Code :
cells(3,5)=cells(1,5)+cells(2,5)
par un code qui en cells(3,5) génère une formule pour calculer les 2 autres cellules ?
Une formule dans une cellule ne peut pas calculer d'autres cellules que celle qui la porte, et on ne peut donc pas installer une formule qui le ferait.
À part ça une instruction qui installerait la formule calculant la même somme,
avec les dollars ca pourrait être :
VB:
Cells(3, 5).FormulaR1C1 = "=R1C5+R2C5"
et sans les dollars :
VB:
Cells(3, 5).FormulaR1C1 = "=R[-2]C+R[-1]C"
ou encore :
VB:
Cells(3, 5).Formula = "=E1+E2"
À +
 

Statistiques des forums

Discussions
284 906
Messages
1 864 037
Membres
155 741
dernier inscrit
khayal boutaina
Haut Bas