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 :

Faire une somme sous une condition [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Faire une somme sous une condition
    Bonjour a tous et a toutes!

    Je suis tout nouveau ici... ce message est donc le premier d'une longue liste??!

    Je fais appel a vous pour que vous puissiez m'aider sous VBA excel.. Je suis debutant et j'aimerai savoir dire en "langage VBA"la phrase suivante:

    Si il y a des chiffres negatifs dans la colonne C alors faire la somme de ces chiffres negatifs dans la case D1

    (j'espere avoir ete clair...)

    Merci beaucoup par avance,

    student12

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Points : 92
    Points
    92
    Par défaut
    Qqe chose comme ca devrait marcher!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    'initialise la variable somme
    somme = 0
    'calcule le nombre max de ligne sur lesquels boucler
    m = Range("C" & Rows.Count).End(xlUp).Row
    'démarre la boucle
    For i = 1 To m
        'vérifie la condition
        If Range("C" & i) < 0 Then
            somme = somme + Range("C" & i)
        End If
    Next
    'écrit dans la cellule D1
    Range("D1") = somme
    Teste et dis nous!

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Reponse ultra rapide ca c'est VRAIMENT cool!!
    Bon j'ai essaye de transposer a mon cas et... c'est la berezina!

    En fait, je vous explique un peu mieux, j'ai la macro suivante:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub CommandButton1_Click()
    Dim J
    Dim Cel As Range
    Dim sheet1, sheet3, i
     
    Set Cel = Worksheets("sheet1").Range("E2")
    Set Cel1 = Worksheets("sheet1").Range("D2")
     
    J = 1
    i = 2
     
     
    Worksheets("sheet3").Range("b:c").Clear
    TextBox1.Value = " "
     
    Do While Cel.Offset(J) <> ""
     
    If ComboBox1.Value = Cel.Offset(J).Value Then
    ino = "b" & i
    Worksheets("sheet3").Range(ino).Value = Cel.Offset(J).Value
    ino = "C" & i
    Worksheets("sheet3").Range(ino).Value = Cel1.Offset(J).Value
    i = i + 1
     
     
     
    End If
     
    J = J + 1
     
    Loop
     
    End Sub
    et j'aimerai mettre avant le end if, une formule vba qui me permettrait de calculer les valeurs negatives qui sont dans la "sheet3" a la colonne C
    et faire la somme de ces valeurs negatives directement dans ma textbox1...

    C'est clair ou du pur charabia??! (pour moi ca parait clair mais je suis tellement dans mon truc que bon on sait jamais! )

    MERCI je suis desespere je bosse dessus depuis 2 jours...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Points : 75
    Points
    75
    Par défaut
    Oui un peu Charabia ....... et Si tu mettais un fichier en PJ

  5. #5
    Membre confirmé Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 353
    Points : 633
    Points
    633
    Par défaut
    Bonjour student12,

    En traduisant mot à mot ton dernier message :

    il te faut rajouter une variable qui va recueillir le résultat de l'addition des chiffres négatifs. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Déclaration de la variable
    Dim cumul As Long
     
    'Initialisation de la variable
    cumul = 0
    Puis insérer dans ton if (à la fin, après ton i=i+1) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Worksheets("sheet3").Range(ino).Value < 0 Then
        cumul = cumul + Worksheets("sheet3").Range(ino).Value
    End If
    Puis afficher ton résultat, après ta boucle Do While :

    Voilà l'idée, à toi de l'adapter.

    Bertrand

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 907
    Points : 28 882
    Points
    28 882
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu dois faire une somme suivant une condition, tu peux utiliser SUMIF
    Voici une exemple en VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Application.WorksheetFunction.SumIf(Range("C2:C12"), "<0")
    Son équivalent en Excel
    Pour ton cas, tu remplaces MsgBox par TextBox1 = et il faut bien sûr adapter la plage des cellules à sommer.
    [EDIT]
    Pour ne pas faire la somme des cellules d'une autre feuille, il est préférable de préciser la feuille naturellement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim rng As Range
    Set rng = ThisWorkbook.Worksheets("Sheet3").Range("C2:C12")
    MsgBox Application.WorksheetFunction.SumIf(rng, "<0")
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci pour toutes ces reponses!

    Bear the French a definitivement apporte LA solution a mon probleme (merci aux autres membres pour les conseils c'est toujours utile!)

    MERCI (vous m'enlevez une grosse epine du pied!)


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

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/05/2013, 17h48
  2. Réponses: 3
    Dernier message: 06/03/2013, 13h00
  3. [SP-2010] Faire une somme sur une colonne d'une liste
    Par sebfreu dans le forum SharePoint
    Réponses: 6
    Dernier message: 19/01/2012, 11h05
  4. [CR X]Effectuer une somme d'une somme
    Par Chuppas dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/08/2008, 10h52
  5. 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

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