XL 2019 Calcul avec VBA dans un formulaire

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Roupitoux

XLDnaute Nouveau
Bonjour à tous,

Dans le fichier joint j'ai crée un formulaire avec 4 "OptionButton" qui renvoi une valeur dans une cellule (B5).

Je dois multiplier la valeur de cette cellule par 25 et afficher le résultat dans la cellule F5.

J'ai rentré cette formule :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells(5, 6).Value = Cells(5, 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 pour que le résultat s’affiche.

Je passe par une formule VBA pour éviter une référence circulaire que je n’arrive pas à résoudre par le calcul classique d'excel.
Quelqu'un peut-il m’aider à solutionner mon problème?

Merci par avance.

Bien cordialement.
 

Pièces jointes

Bonjour Roupitoux, Soan

@soan de ce que j'ai compris de la demande :
Dans le fichier joint j'ai crée un formulaire avec 4 "OptionButton" qui renvoi une valeur dans une cellule (B5).
Je dois multiplier la valeur de cette cellule par 25 et afficher le résultat dans la cellule F5.
Donc j'ai compris qu'il voulait faire "B5 * 25" en F5.
Je sais cela semble trop facile mais mon petit cerveau du dimanche soir a compris cela !!!
Maintenant le demandeur pourrait nous dire ce qu'il veut vraiment et affiner sa question....

@Phil69970
 

Pièces jointes

je plaisantais, car la formule est super courte et simple ! =B5*25

en formule plus courte, tu as : =1

on peut pas faire plus court puisqu'une formule doit obligatoirement
commencer par le signe « = ».

soan
 
Bonjour Phil69970,

Merci et désole car je viens seulement de voir votre réponse, je nai pas eu de notification...
Mais mon problème est que je dois passer par une formule VBA et non via un calcul simple dexcel.
Auriez vous une idée?

Merci par avance.
 
@Roupitoux, le Phil, 😜

lis d'abord mon post #8 précédent. (clique sur le lien bleu)

dans le fichier joint, teste chaque bouton, puis regarde les 2 formules en B5 et F5 ; y'a pas d'référence circulaire, et tu peux voir qu'il n'y a pas besoin de VBA. 🙂

formule en B5 : =CHOISIR(EQUIV(VRAI;G5:G8;0);20;50;80;95)

formule en F5 : =B5*25

j'ai aussi mis en F5 ce format de nombre : nombre avec séparateur de milliers et décimales : 0 ; ainsi, le nombre est plus facile à lire.


remarque : ne confonds pas les formules Excel avec ce qu'on peut faire en VBA (= des macros = des Subs ou des Functions) ! alors même si les formules peuvent utiliser des fonctions, comme par exemple la fonction ALEA(), les formules ne sont pas des macros VBA : ce sont ni des Sub ni des Function ; d'autre part, une formule Excel peut appeler une fonction personnalisée qui a été écrite en VBA.

soan
 

Pièces jointes

Dernière édition:
@Roupitoux, le fil,

si vraiment tu tiens à une solution en VBA, alors en voici une :

VB:
Option Explicit

Private Sub Job(k As Byte)
  Application.ScreenUpdating = 0
  [B5] = k: [F5] = k * 25
  ActiveCell.Select
End Sub

Private Sub OptionButton1_Click()
  Job 20
End Sub

Private Sub OptionButton2_Click()
  Job 50
End Sub

Private Sub OptionButton3_Click()
  Job 80
End Sub

Private Sub OptionButton4_Click()
  Job 95
End Sub

mais perso, je préfère la solution sans VBA de mon post #10. 😉

soan
 

Pièces jointes

Bonsoir Soan et Phil69970,

Je n’ai pas eu la réponse que je cherchais mais je vais continuer de chercher par moi même et ça m'a au moins permis d’apprendre quelque truc en VBA 🙂 .
Merci beaucoup pour votre temps et votre sympathie!

A bientôt.

Roupitoux
 
Bonjour Roupitoux, Phil,

tu as écrit : « Je n’ai pas eu la réponse que je cherchais » ; or selon ton énoncé, tu voulais que les valeurs de B5 et F5 varient en fonction des 4 "OptionButton" ; c'est bien ce que j'ai fait dans mes 2 fichiers joints (le .xlsx et le .xlsm) : quand tu choisis le bouton 1 : 20 × 25 = 500 ; avec le bouton 2 : 50 × 25 = 1 250 ; bouton 3 : 80 × 25 = 2 000 ; bouton 4 : 95 × 25 = 2 375 ; j'étais sûr d'avoir répondu à ta demande, mais si c'est pas ça, alors qu'est-ce que ça peut être ? si tu nous indique ce que tu veux à la place, alors on arrivera peut-être à trouver une solution qui te convienne ?​

soan
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
14
Affichages
634
Réponses
0
Affichages
367
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
773
Réponses
3
Affichages
216
Réponses
3
Affichages
442
Retour