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

IHM Discussion :

Somme d'une colonne de la listbox [AC-2016]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 212
    Points : 150
    Points
    150
    Par défaut Somme d'une colonne de la listbox
    Bonjour, je voudrait afficher sur mon label du formulaire: "Label_total_colonne" la somme des valeurs qui s'affichent sur la colonne 8, [Prix mensuel] à chaque changement de ma listbox "Liste1".

    J'ai essayé cela ça sur l'ouverture ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_Open(Cancel As Integer)
    Dim var As Integer
    Dim i As Long
     
    For i = 0 To Me.Liste1.ListCount - 1
     
     
        var = var + Me.Liste1.Column(7, i)
    Next i
     
    Me.Label_total_colonne.Value = var
    End Sub
    erreur d exécution 94
    utilisation incorrecte de Null
    débogage sur ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var = var + Me.Liste1.Column(7, i)


    Merci d'avance.

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Bonjour,
    En passant ... elle est où, l'initialisation de la variable var à 0 ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 212
    Points : 150
    Points
    150
    Par défaut
    Bonjour vttman,
    j'ai suivi ce tuto

    https://www.developpez.net/forums/d7...tir-d-listbox/

    Même si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            var = var = Liste1.Column(1, 2)
    MsgBox var
    la valeur affiche toujours 0 quelque soit la ligne ou la colonne sélectionné entre les parenthèses ?

    Merci

  4. #4
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 274
    Points : 6 583
    Points
    6 583
    Par défaut
    A tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var = var + Nz(Me.Liste1.Column(7, i), 0)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 212
    Points : 150
    Points
    150
    Par défaut
    Bonsoir Hyperion13,

    malheureusement ça ne fonctionne pas :/

    Merci pour ta réponse.

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonsoir,
    Attention: Dim var As Integer pour un total de prix, le type Integer n'est pas suffisant (pas de décimales et valeur maxi: 32767), mieux vaut remplacer par Currency.
    Que renvoie Me.Liste1.Column(7, i) si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Me.Liste1.Column(7, i)
    ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 212
    Points : 150
    Points
    150
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,
    Attention: Dim var As Integer pour un total de prix, le type Integer n'est pas suffisant (pas de décimales et valeur maxi: 32767), mieux vaut remplacer par Currency.
    Que renvoie Me.Liste1.Column(7, i) si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Me.Liste1.Column(7, i)
    ?
    Bonsoir ça renvoie ça,

    Prix mensuel
    27,59
    28,6
    28,6
    18,1
    23,1

    24,9
    23,1

    23,68

    Donc c'est certainement parce que il y a prix mensuel qui correspond à l’entête de la liste box et des champs vides...
    Comment peut on résoudre le pb en gardant l’entête et en sachant qu'il il y a des champs vides ?.

    Merci Tee granbois.

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    Ok, essaie ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Form_Open(Cancel As Integer)
    Dim var As currency
    Dim i As Long
     
    For i = 1 To Me.Liste1.ListCount 
     
        var = var + + Val(Replace(Nz(Me.Liste1.Column(7, i), "0"), ",", "."))
    Next i
     
    Me.Label_total_colonne.Value = var
    End Sub
    explications:
    ligne 5: on démarre la boucle à partir de 1 pour éviter l'entête
    ligne 7: le Replace() change le séparateur de décimales (virgule) par celui de VBA (point), le Nz() pour gérer les valeurs nulles, le Val() pour convertir la colonne de texte en nombre

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 212
    Points : 150
    Points
    150
    Par défaut
    Bonjour,
    un grand merci tee_grandbois ça fonctionne !!!

    Pour le i=1 j'avais calculé hier soir en partant me coucher ... me suis dit mais t'es bête ou quoi lol.

    Bonne journée !

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/08/2007, 21h15
  2. faire la somme d'une colonne d'une listbox
    Par Namson dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/04/2007, 23h34
  3. Réponses: 10
    Dernier message: 03/10/2006, 20h19
  4. comment calculer la somme d'une colonne d'un dbgrid
    Par kirty dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/07/2006, 20h55

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