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 :

Sommer une colonne à partir d'une cellule nommée


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Points : 71
    Points
    71
    Par défaut Sommer une colonne à partir d'une cellule nommée
    Bonjour,

    Je souhaite faire la somme d'une colonne qui a un nombre de ligne variant.

    J'ai nommé la première cellule de cette colonne là j'ai fait pas mal de test pour sommer les valeurs des lignes mais j'y arrive pas.

    Quel est la meilleure solution pour résoudre ce problème ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Sum(Columns(X))
    Avec 'X' le numéro de colonne.

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Bonjour,

    2 méthodes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Sum(Columns(Range("monnom").Column))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Evaluate("sum(" & Range(Range("monnom"), Cells(Rows.Count, Range("monnom").Column).End(xlUp)).Address & ")")

  4. #4
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    Hello,

    Tu veux faire la somme d'une colonne don le nombre de lignes occupées est variable ?

    quel est la forme de tes valeurs entiers , double ???

    Dans quelle cellule veux tu le resultat?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Ashireon Voir le message
    Hello,

    Tu veux faire la somme d'une colonne don le nombre de lignes occupées est variable ?

    quel est la forme de tes valeurs entiers , double ???

    Dans quelle cellule veux tu le resultat?
    Bonjour,

    Ces des valeurs avec des virgule " single "

    Oui je veux sommer les lignes occupées et variables

    Je veux mettre la somme dans une cellule que j'ai nommé

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dans ce cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("nom_2").Value = Application.WorksheetFunction.Sum(Columns(Range("nom_1").Column))
    Avec:
    'nom_1' La cellule de la plage à sommer
    'nom_2' La cellule de destination

  7. #7
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    Si ce qui a été donné au dessus ne fonctionne pas c'est que tout simplement tu as un probleme avec tes valeurs dans les cellules. elles sont consiferées comme du texte et non des nombres

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    Bonjour,

    2 méthodes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Sum(Columns(Range("monnom").Column))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Evaluate("sum(" & Range(Range("monnom"), Cells(Rows.Count, Range("monnom").Column).End(xlUp)).Address & ")")
    Merci beaucoup pour ta réponse je viens d'essayer cette instruction et ça à l'air de marcher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Sum(Columns(Range("monnom").Column))
    Mais par contre pourrais tu nous expliquer les deux solution ?

    La première solution somme telle toute les valeurs de la colonne ? car ma feuille pourrait contenir des valeurs dans la même colonne mais qui ne sont pas considéré dans la somme

    Merci

    Citation Envoyé par vcottineau Voir le message
    Dans ce cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("nom_2").Value = Application.WorksheetFunction.Sum(Columns(Range("nom_1").Column))
    Avec:
    'nom_1' La cellule de la plage à sommer
    'nom_2' La cellule de destination
    Ta solution somme toute la colonne et moi je veux juste sommer quelque lignes d'un tableau et non pas la totalité des ligne de cette colonne.

    je m'explique si j'ai un tableau avec 10 ligne alors je ne sommerai que ces 10 lignes là

    or dans mon cas j'ai d'autre données en dessous de mon tableau. J'ai des valeurs dans la colonne concernée mais elle ne doivent pas être sommées

  9. #9
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Une troisième méthode qui est plus adapté a ta demande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("monnom").Select
    MsgBox Evaluate("sum(" & Range(Range("monnom"), Range("monnom").Offset(Selection.CurrentRegion.Rows.Count - 1, 0)).Address & ")")

    EDIT
    Ou toujours avec worksheetfunction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Application.WorksheetFunction.Sum(Range(Range("monnom"), Range("monnom").Offset(Selection.CurrentRegion.Rows.Count - 1, 0)))

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Points : 71
    Points
    71
    Par défaut
    merci pour ton aide

    Je viens d'essayer avec la worksheetfunction et ça à l'air de marcher mais je veux tout de même un peu d'explication car la formule est assez compliquée

    cette selection " Selection.CurrentRegion.Rows.Count - 1 " retourne quoi ?

  11. #11
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.CurrentRegion
    Sélectionne un tableau autour de la cellule sélectionnée. Ce tableau s'arrete aux colonnes et lignes vides

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.CurrentRegion.Rows.Count
    Retourne le nombre de ligne du tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("monnom").Offset(Selection.CurrentRegion.Rows.Count - 1, 0)
    on part de la cellule "MonNom" et on descend du nombre de ligne du tableau (-1 ligne correspondant à la ligne de départ)

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 472
    Points : 71
    Points
    71
    Par défaut
    Je te remercie beaucoup

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

Discussions similaires

  1. Filtrer une colonne à partir d'une cellule
    Par D-D-Du-06 dans le forum Excel
    Réponses: 7
    Dernier message: 21/04/2016, 12h26
  2. Réponses: 19
    Dernier message: 14/05/2011, 04h13
  3. [XL-2007] Créer une colonne à partir d'une selection conditionnelle
    Par sunstrike69 dans le forum Excel
    Réponses: 6
    Dernier message: 27/07/2009, 19h33
  4. remplir une colonne à partir d'une autre table
    Par judy_ dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/06/2008, 23h05
  5. Réponses: 2
    Dernier message: 31/01/2008, 18h58

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