Microsoft 365 Écrire une formule dans une cellule en VBA

pat66

XLDnaute Impliqué
Bonsoir le forum,

pourriez vous m'aider à rédiger ces formules en VBA, j'aimerais pouvoir basculer entre les 2 en cliquant sur une forme de la feuil1

J31 = J92
L31 = J93
N31 = J31 - L31
P31 =SI(R88*12<F90;0;ARRONDI(L94;-2))
R31 = P31

et basculer avec

J31 = F92
L31 = F93
N31 = =J31 - L31
P31=SI(P5<R88*12;0;ARRONDI(L94;-2))
R31 = P31

un grand merci

bonne soirée

cdt
 
Solution
Bonsoir Pat,
Franchement un petit fichier test aurait aidé !
Ne serait ce que pour éviter qu'on se le retape.
Un essai en PJ avec :
VB:
Sub Bascule()
If [J31].FormulaLocal = "=J92" Then
    [J31].FormulaLocal = "=F92"
    [L31].FormulaLocal = "=F93"
    [N31].FormulaLocal = "=J31-L31"
    [P31].FormulaLocal = "=SI(P5<R88*12;0;ARRONDI(L94;2))"
    [R31].FormulaLocal = "=P31"
Else
    [J31].FormulaLocal = "=J92"
    [L31].FormulaLocal = "=J93"
    [N31].FormulaLocal = "=J31-L31"
    [P31].FormulaLocal = "=SI(R88*12<F90;0;ARRONDI(L94;2))"
    [R31].FormulaLocal = "=P31"
End If
End Sub
NB:
ARRONDI(L94;-2) : je pe,se qu'il y a une erreur, c'est plutôt ARRONDI(L94;2) , non ?

A noter que les formules en N31 et R31 restant inchangées, on les supprimer de la...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Pat,
Franchement un petit fichier test aurait aidé !
Ne serait ce que pour éviter qu'on se le retape.
Un essai en PJ avec :
VB:
Sub Bascule()
If [J31].FormulaLocal = "=J92" Then
    [J31].FormulaLocal = "=F92"
    [L31].FormulaLocal = "=F93"
    [N31].FormulaLocal = "=J31-L31"
    [P31].FormulaLocal = "=SI(P5<R88*12;0;ARRONDI(L94;2))"
    [R31].FormulaLocal = "=P31"
Else
    [J31].FormulaLocal = "=J92"
    [L31].FormulaLocal = "=J93"
    [N31].FormulaLocal = "=J31-L31"
    [P31].FormulaLocal = "=SI(R88*12<F90;0;ARRONDI(L94;2))"
    [R31].FormulaLocal = "=P31"
End If
End Sub
NB:
ARRONDI(L94;-2) : je pe,se qu'il y a une erreur, c'est plutôt ARRONDI(L94;2) , non ?

A noter que les formules en N31 et R31 restant inchangées, on les supprimer de la macro et les mettre en dur dans les cellules.
 

Pièces jointes

  • Pat.xlsm
    14.3 KB · Affichages: 1
Dernière édition:

pat66

XLDnaute Impliqué
bonjour le forum
bonjour le fil

Pour le fichier je suis désolé, j'y ferais attention la prochaine fois

Sinon un grand merci messieurs, les 2 solutions fonctionnent parfaitement,

Sylvanu c'est bien ARRONDI(L94;-2)
Phil ta proposition ne manque pas d'intérêts avec TextFrame.Characters.Text = "Solution 1"

merci encore

belle journée à tous
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 679
dernier inscrit
Yupanki