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 :

Calcul listbox userforme


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut Calcul listbox userforme
    Bonjour,

    J'ai crée un userforme qui me permet d’insérer mes "ventes"
    J'aimerais donc que selon des listbox il me calcul le prix total Htva et le prix total de la tva

    Mais mon code n'as pas l'air parfait car il me fait pas l'addition..

    Nom : help.png
Affichages : 436
Taille : 105,5 Ko

    donc ici c'est à l'utilisateur de remplir les cases :

    TextBox16 = on indique ici le taux de la TVA
    TextBox17 =Intitulé de l'article
    TextBox18 = Quantités
    TextBox19 = Prix unitaire Htva

    Et ici la macro qui calcul :

    TextBox20 = Total HTVA (TextBox18 * TextBox19)
    TextBox21 = Total TVA (TextBox19 / 100 * TextBox16)

    Voici le code que j'ai crée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox18_AfterUpdate()
        TextBox20 = (Val(TextBox18.Value) + Val(TextBox19.Value))  ->>>> fonctionne pas il me calcul pas l'addition
        TextBox21 = (Val(TextBox20.Value) / 100 * Val(TextBox16.Value)) ->>>> Ici sa à l'air de fonctionner bizarrement :/
    End Sub

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    1- quand tu utilises l'événement After_Update du TextBox18, le TextBox19 est il rempli?
    2- Précises toujours la propriété des contrôles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox18_AfterUpdate()
        TextBox20.Value = Val(TextBox18.Value) + Val(TextBox19.Value)  '->>>> fonctionne pas il me calcul pas l'addition
        TextBox21.Value = (Val(TextBox20.Value) / 100 * Val(TextBox16.Value)) '->>>> Ici sa à l'air de fonctionner bizarrement :/
    End Sub
    3- ce ne serait pas plutôt une multiplication (quantité par prix unitaire) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox18_AfterUpdate()
        TextBox20.Value = Val(TextBox18.Value) * Val(TextBox19.Value)  '->>>> fonctionne pas il me calcul pas l'addition
        TextBox21.Value = (Val(TextBox20.Value) / 100 * Val(TextBox16.Value)) '->>>> Ici sa à l'air de fonctionner bizarrement :/
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    Oui tout à fait une multiplication pardon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox18_AfterUpdate()
        TextBox20.Value = Val(TextBox18.Value) * Val(TextBox19.Value)
        TextBox21.Value = (Val(TextBox20.Value) / 100 * Val(ComboBox1.Value))
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Combobox1 = 
              With Me.ComboBox1
                ComboBox1.AddItem "0"
                ComboBox1.AddItem "6"
                ComboBox1.AddItem "21"
    Pour le choix du nombre de la TVA (sa fonctionne)

    Et je remplit les cases dans l'ordre donc en 1er la tva, puis TextBox17.. 18 ... 19

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par dgeo10 Voir le message
    Et je remplit les cases dans l'ordre donc en 1er la tva, puis TextBox17.. 18 ... 19
    Donc, lorsque l'événement TextBox18_AfterUpdate se déclenche, la TextBox19 n'est pas remplie...
    Par conséquent, utilise plutôt l'événement TextBox19_AfterUpdate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox19_AfterUpdate()
        TextBox20.Value = Val(TextBox18.Value) * Val(TextBox19.Value)
        TextBox21.Value = (Val(TextBox20.Value) / 100 * Val(ComboBox1.Value))
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    Parfait Merci
    Comme de quoi ... juste une petite erreur et rien ne fonctionne

    donc la ok c'est presque bon.
    Quand je rentre les données il calcul bien ok.
    Par contre par exemple quand je rechange la tva (qui était à 0 par exemple) et je change en 21
    la il change pas la réponse :/

    Il y à un moyen pour que TextBox20 et TextBox21 se rafraîchisse à chaque changement des autres TextBox et combobox ?

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Il te faut utiliser les événements des textbox avec une petite Sub perso...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub TextBox16_AfterUpdate()
       Calcule
    End Sub
     
    Private Sub TextBox18_AfterUpdate()
       Calcule
    End Sub
     
    Private Sub TextBox19_AfterUpdate()
       Calcule
    End Sub
     
    Private Sub Calcule()
       If TextBox16.Value <> "" And  TextBox18.Value <> "" And TextBox19.Value <> "" Then 
          TextBox20.Value = Val(TextBox18.Value) * Val(TextBox19.Value)
          TextBox21.Value = (Val(TextBox20.Value) / 100 * Val(ComboBox1.Value))
       End If
    End Sub
    Pour ta combobox, ne sachant pas ce qu'elle fait, je ne peut pas te répondre.
    Si j'ai bien compris, le choix dans la combobox modifie le texBox16?
    Si oui, alors le code ci-dessus suffit.

  7. #7
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    non non j'ai remplacer totalement la textbox 16 par la combobox1 donc le 16 n'existe plus
    la combobox me permet de choisir le taux de tva, et du fait il modifie la réponse de la combobox 20 et 21
    mais j'ai modifier pas de problème cela fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Calcule()
       If ComboBox1.Value <> "" And TextBox18.Value <> "" And TextBox19.Value <> "" Then
          TextBox20.Value = Val(TextBox18.Value) * Val(TextBox19.Value)
          TextBox21.Value = (Val(TextBox20.Value) / 100 * Val(ComboBox1.Value))
       End If
    End Sub
    J'ai regarder dans les paramètres à gauche mais je trouve pas le moyen de changer la couleur texte des 2 dernières textbox
    Ils s'affiche en grisé et donc très peut visible je préférerais en noir. vous avez une idée ?

    Nom : color.png
Affichages : 277
Taille : 17,1 Ko

  8. #8
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Essaie ceci dans l'initialize de l'userform :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TextBox20.BackColor = &H80000005
    TextBox21.BackColor = &H80000005
    Sinon modifie leurs propriétés ForeColor (couleur de police)

  9. #9
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    Malheureusement non, même en modifiant le Forecolor sa ne fonctionne pas :/

  10. #10
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    On ne code pas avec ses pieds, mais en faisant un minimum attention...
    Tu n'as qu'une ligne à vérifier, alors, stp, va prendre un café et dis moi ce que c'est que : ComboBox21.Value

    Faut se frotter les yeux le matin!

  11. #11
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    J'avais oublier je vient de rajouter une textbox22 pour avoir le Total TVAC

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Calcule()
       If ComboBox1.Value <> "" And TextBox18.Value <> "" And TextBox19.Value <> "" Then
          TextBox20.Value = Val(TextBox18.Value) * Val(TextBox19.Value) 'Total HTVA
          TextBox21.Value = (Val(TextBox20.Value) / 100 * Val(ComboBox1.Value)) 'Montant de la TVA
          TextBox22.Value = Val(TextBox20.Value) + Val(TextBox21.Value) 'Total TVAC
       End If
    End Sub
    Mais ici, pour la TextBox22 il m'arrondi la réponse par exemple au lieu de 52.24 il indique 53 !?

  12. #12
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    Oui oui j'ai poster trop vite puis je me suis rendu compte de mon erreur j'ai modifier en vitesse
    mais trop tard tu la vus ...

  13. #13
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Remplace tout tes Val par CDbl, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox20.Value = CDbl(TextBox18.Value) * CDbl(TextBox19.Value)

  14. #14
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2014
    Messages : 92
    Par défaut re
    Ahhhh merci beaucoup

    Et désolé pour l'erreur de tout à l'heure

  15. #15
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Si c'est fini, clique sur "Résolu".
    A++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Calcul dans userform
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/01/2014, 09h26
  2. [XL-2007] calcul dans userform
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/02/2011, 00h02
  3. pas d'accè à ma feuille de calcul quand userform ouvert
    Par bigmousse69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/04/2009, 13h53
  4. Feuille de calcul sur UserForm
    Par abennis dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/08/2007, 20h37
  5. [VBA-E]Impression feuille calcul sans userform
    Par pombela dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/03/2007, 19h09

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