XL 2019 Calcul avec VBA dans un formulaire

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

  • Classeur1.xlsx
    19.4 KB · Affichages: 20

Phil69970

XLDnaute Barbatruc
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

  • Classeur1.xlsx
    19.8 KB · Affichages: 8

soan

XLDnaute Barbatruc
Inactif
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
 

Roupitoux

XLDnaute Nouveau
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.
 

soan

XLDnaute Barbatruc
Inactif
@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

  • Classeur1.xlsx
    18.7 KB · Affichages: 6
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@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

  • Classeur2.xlsm
    25.1 KB · Affichages: 7

Roupitoux

XLDnaute Nouveau
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
 

soan

XLDnaute Barbatruc
Inactif
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
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 171
Membres
112 676
dernier inscrit
little_b