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

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:

Phil69970

XLDnaute Barbatruc
Bonjour @pat66
Edit bonjour Sylvain

Je te propose ce fichier
Le nom de la forme est à adapter à ton fichier bien sur

Un fichier éviterait de se taper un fichier que tu as sur ton PC

Merci de ton retour
 

Pièces jointes

  • Formule VBA V1.xlsm
    33.7 KB · Affichages: 9

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…