IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Multiplication de pourcentage entre deux textbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 72
    Par défaut Multiplication de pourcentage entre deux textbox
    Bonjour à tous,

    je travaille actuellement sur une petite macro où lorsque je rempli mon userform, j'indique les deux choses suivantes:
    - pourcentage obtenu de l'affaire (combobox1)
    - montant de l'affaire (textbox2)

    Lorsque je clique sur mon bouton valider pour rentrer les valeurs dans leur cellule, j'obtiens pour une affaire à 100 euros avec un pourcentage dessus à 50% en faisant la multiplication 50%*100:

    -Pourcentage: 50%
    Montant de l'affaire: 50 euros.

    Mon problème est quand je fais apparaître mon deuxième userform pour faire apparaître mes données afin de les modifier.
    Pour l'instant, j'ai codé de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Combobox1.value= cell(ligne,3).value
    Textbox2.value= cell(ligne,4).value
    Mon problème est que si je modifie ma combobox1 pourcentage, mon textbox2 ne s'actualise pas. C'est à dire que si je change le pourcentage de 50% à 90%, il faudrait que ma textbox passe de 50 à 90 euros en calculant automatiquement.

    Je ne sais pas du tout comment faire le raisonnement suivant:

    Combobox1=50 % ---> 50 euros= Textbox2
    
                      X
    
    Combobox1=90 %  ---> x euros = Textbox2
    Du coup, il faut réussir à coder pour dire que si la combobox1 subit un changement, alors la valeur de la textbox2= (90%*50euros / 50%)

    J'ai aucune idée de comment faire, qui peut m'aider ?!

    merci énormément !

    Cordialement

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    utilise la procédure évènementielle MonCombobox_Change(), où MonCombobox représente le nom de ton combobox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
        ' ici se lancera la procédure à chaque fois que tu changes la valeur sélectionnée de ton combobox
    End Sub

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 72
    Par défaut
    Bonjour !

    J'ai bien imaginé de coder de cette façon mais je n'arrive pas à poser le produit en croix pour un code.
    En partant de l'exemple basique cité ci dessus:
    combobox1=50 %
    textbox2=50 euros

    Si je passe combobox1 à 100%, je dois obtenir 100 euros dans ma textbox2. Le problème, c'est qu'avec la logique du produit en croix, je ne sais pas comment dissocier la valeur initiale de combobox1 et textbox2 et la valeur nouvelle de combobox1 pour obtenir celle nouvelle de textbox2, c'est à dire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
    TextBox2_new.value = (ComboBox1_initial.value* TextBox2_initial.value) / (ComboBox1_new.value)
    End Sub
    Merci beaucoup !!!

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    nous n'avons pas suffisament de précision pour te donner la solution immédiatement.

    On commence le userform avec une valeur de départ (qui représente donc 100%) et quand on change le pourcentage dans la combobox, ça affiche la portion de valeur (par rapport à la valeur initiale) dans textbox2 ?

    Ou alors on commence par une valeur de départ, et à chaque changement de combobox il faut modifier au fur et à mesure des étapes ?

    si on est dans le cadre 1,
    il faut stocker la valeur initiale de ton textbox pour ensuite mettre à jour l'affichage en fonction du pourcentage
    par exemple (attention, je ne sais pas quel est le format de ton pourcentage dans combobox) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim ValeurDepart As Double
     
    Private Sub ComboBox1_Change()
    'admettons que le pourcentage soit écrit sur 2-3 chiffres sans le %
    Me.TextBox1.Value = ValeurDepart * CDbl(Me.ComboBox1.Value) / 100
     
    End Sub
     
    Private Sub UserForm_Initialize()
    ValeurDepart = 100
    Me.TextBox1.Value = ValeurDepart
    End Sub
    pour tout autre cadre, il faudra peut être utiliser une seconde variable (pour stocker le pourcentage initial) et/ou éventuellement affecter à ValeurDepart (et Pourcentage Initial) la valeur qui a été recalculée à chaque fois, afin de la stocker pour la prochaine opération

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/05/2012, 10h13
  2. calculer la différence en pourcentage entre deux champs sql
    Par sihammaster dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/07/2011, 18h48
  3. [AC-2003] Relations multiples entre deux mêmes tables
    Par DuracellSubaquatique dans le forum Modélisation
    Réponses: 8
    Dernier message: 04/08/2009, 09h57
  4. Calcul de pourcentage entre deux champs
    Par waelos dans le forum BIRT
    Réponses: 2
    Dernier message: 14/11/2008, 14h49
  5. Partage d'une Textbox entre deux class
    Par lexius dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/04/2008, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo