Calcul en VBA dans un formulaire

Bonjour à tous,

J'ai crée un formulaire avec 5 "OptionButton" qui renvoi une valeur dans une cellule (A1), différente selon l'OptionButton choisi.

Je dois multiplier la valeur de cette cellule par 25 et afficher le résultat dans une cellule (B1) pour éviter une référence circulaire.

J'ai rentré cette formule :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells(1, 2).Value = Cells(1, 2).Value * 25
End Sub

Le problème est que le calcul ne se fait pas automatiquement selon la valeur affichée par l'OptionButton, je dois cliquer sur une cellule (n’importe laquelle) pour que le résultat s’affiche.

Je débute en VBA, si quelqu'un pouvait m’aider a solutionner mon problème...

Merci par avance.

Bien cordialement.

Bonsoir,

et si vous faisiez la multiplication avant l'inscription de la valeur dans la cellule ?

@ bientôt

LouReeD

Bonjour à tous,

Worksheet_SelectionChange ?

Tu veux vraiment multiplier par 25 à chaque fois que tu cliques sur n'importe quelle cellule ?
Pas sûr que tu aies fait le bon choix d'événement.
Et tu parles de formulaire, il n'y en a pas ici.

Déposes donc un fichier exemple avec plus d'explications sur ce que tu veux (et non la façon que tu as choisis pour résoudre ton problème).
Là on ne sait même pas si c'est une saisie ou une formule (et laquelle) tu as en A1. Et ça compte...

Par ailleurs, A1 ce n'est pas Cells(1, 2).Value, ça n'aide pas à te comprendre.
eric

Bonjour à tous,

et merci à LouReeD et eriiic pour vos premiers éléments de réponse ...

En effet un fichier exemple est beaucoup plus parlant mais malheureusement le service est indisponible

J'ai cherché à simplifier (un peu trop) ma demande alors mais je vais détailler un peu plus :

En fait, j'ai 4 OptionButton ( contrôle active X) nommés 1,2,3,4.

si je sélectionne l'optionButton1 "VRAI" s’affiche en G5, "FAUX" en G6 correspondant à l'optionButton2, "FAUX" en G7 correspondant à l'optionButton3,"FAUX" en G8 correspondant à l'optionButton4.

En B5 une valeur s'affiche avec la formule suivante : =SI(G5;20;SI(G6;50;SI(G7;80;SI(G8;95)))).

En F5 une valeur s'affiche avec le code VBA suivant :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells(5, 6).Value = Cells(5, 2).Value * 25
End Sub

Mon problème est que le résultat en F5 ne change pas automatiquement lorsque je sélectionne une "OptionButton", mon code VBA ne fonctionne que si je clic sur une cellule (n'importe laquelle).

J’espère avoir été plus clair cette fois ci :-).

Bien Cordialement,

Sans fichier, difficile d'imaginer où est le problème. Tu n'es pas en calcul manuel des fois ?
Et on ne voit pas non plus la référence circulaire qui t'empêcherait de mettre une formule en F5
eric

Bonsoir,

Ça refonctionne! voici mon fichier exemple en pièce jointe ...

27classeur1.xltm (25.34 Ko)

Bonne soirée.

Bonjour,

rien d'anormal que tu doives sélectionner une autre cellule pour que ta macro se lance puisque c'est c'est l'événement que tu as choisi : Worksheet_SelectionChange

Par ailleurs je ne vois pas pourquoi tu ne mets pas =B5*25 en F5.
Pas de référence circulaire et pas besoin de macro
eric

Bonsoir,

et bien tant pis! :-) merci encore pour votre patience, je vais continuer à chercher par moi même.

Bonne soirée.

A bientôt

Bonsoir,

je ne comprends pas pourquoi passer par des cellules ! En fait ce sont des boutons radios sur lequel on peut associer du code VBA, il suffit donc créer un code pour chaque bouton radio qui fera la multiplication en fonction de lui même : option 1 = 25 * 20, option 2 = 25*50 etc...

Et là on voit que la multiplication n'est pas utile, donc option 1 : 500, option 2 = 750 etc...
Mais maintenant vous pouvez mettre le code que vous voulez.

le fichier :

14classeur12-lrd.xlsm (34.09 Ko)

@ bientôt

LouReeD

Rechercher des sujets similaires à "calcul vba formulaire"