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 :

addition a partir d'un label


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 13
    Par défaut addition a partir d'un label
    Bonjour,

    voici mon souci:

    j'ai un userform avec les objets suivants:

    une listbox
    un commandbutton
    deux labels

    la listbox a 2 colonnes une avec les articles et l'autre avec leurs prix.
    le total de ces prix est affiché dans un label (label1)
    lorsque l'utilisateur appuie sur le bouton, il vide la listbox et remet le label1 à zéro.
    je souhaiterais, qu'en plus le total du label1 viennent se placer dans le label2 et qu'ils s'additionnent à chaque clique de bouton...

    voici ce que j'ai fait comme procédure et que j'appelle dans le commandbutton_click. Mais, il m'affiche toujours 0,00 il n'additionne rien!



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ValeurTotale()
     
        Dim Val_Total As Double
        Dim j As Double
        j = Label1.Caption
        Val_Total = ValTotal + j
     
        Label2.Caption = Format(Val_Total, "0.00")
     
    End Sub

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    voici ce que j'ai fait comme procédure et que j'appelle dans le commandbutton_click. Mais, il m'affiche toujours 0,00 il n'additionne rien!
    Tu devrais rechercher parmi de toutes récentes dicussions relatives à l'utilisation de la fonction Val ou de la fonction CCur (selon que ce que tu as dans le Label utilises comme séparateur décimal le point ou la virgule)

  3. #3
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    d'où vient ValTotal ?

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Mise à part la question pertinente de cafeine, ce ne serait pas plus simple comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ValeurTotale()
         Label2.Caption = Format(Val(Label1.Caption) + Val(Label2.Caption), "0.00")
    End Sub
    ?

    Et comme je sens venir la question suivante, une petite gestion des virgules dans les labels:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ValeurTotale()
        Label2.Caption = Format(Val(Replace(Label1.Caption, ",", ".")) _
                    + Val(Replace(Label2.Caption, ",", ".")), "0.00")
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,

    C'est là tout le problème des transformations automatiques de VB (valeurs VB vers Label, msgbox, etc...)

    La méthode (son Edit) d'AlainTech est sans faille, mais elle impose une discipline dont l'oubli ici ou là dans le code (en exploitant la valeur du label affichant le total, par exemple) peut générer des erreurs.

    Utiliser une virgule comme séparateur puis Ccur peut également être source d'ennui ou de complications du code ailleurs.

    L'idéal est de ne travailler qu'avec des nombres utilisant le point comme séparateur décimal.
    Mais, nous interrogeons-nous immédiatement, comment le faire puisque VB va transformer spontanément ce point en virgule dans le Caption du Label ?

    L'idée est que la fonction Str, elle, ne pratique pas cette modification d'office et garde donc le séparateur point.

    Nous nous en servons donc ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Command1_Click()
      Label1.Caption = "1.2"
      Label2.Caption = Str(Format(Val(Label1.Caption) + Val(Label2.Caption), "0.00"))
    End Sub
    on verra, en cliquant plusieurs fois, que l'addition se fait tout en gardant le point comme séparateur décimal.
    Toute autre opération utilisant la valeur contenue dans Label2 pourra donc ainsi se faire très simplement par l'utilisation de Val(Label2.Caption)

    Ce n'est que mon avis....

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Mais tu perds l'affichage "local"...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Oui, je perds l'affichage "local" (mais c'est mon choix entre deux maux)

    Ceci dit, voilà comment j'ai ménagé une fois la chèvre (ma secrétaire) et le choux (l'intérêt général) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Command1_Click()
      Label1.Caption = "1.2"
      Label2.Tag = Str(Format(Val(Label1.Caption) + Val(Label2.Tag), "0.00"))
      Label2.Caption = Val(Label2.Tag)
    End Sub

Discussions similaires

  1. recuperation jour semaine a partir d'une label javascript
    Par Cheorches dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 28/10/2013, 18h26
  2. [XL-2003] Recherche à partir d'un label ?
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/02/2010, 11h27
  3. Réponses: 4
    Dernier message: 07/01/2007, 22h18
  4. Réponses: 3
    Dernier message: 15/11/2006, 13h46
  5. Réponses: 10
    Dernier message: 08/08/2006, 10h24

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