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 :

Somme avec 2 conditions vba excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2013
    Messages : 38
    Par défaut Somme avec 2 conditions vba excel
    Bonjour,

    Je suis toujours aussi bleu en VBA et cela fait deux jours que je cherche un code VBA pour:

    Voila mon problème.

    Voici en annexe.
    En fait si valeur en A = valeur suivant et valeur en B = valeur suivante tant que ses egalité existe => rappel des données en E et F on fait la somme des valeur en G => sinon on passe aux valeur suivante .
    En attaché voici mon fichier.

    Merci de votre aide.

    Bonsoir
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour ChNoirhomme,

    Alors, je ne sais pas si c'est ce que tu veux, mais d'après ce que j'ai compris tu veux voir la "QTY" chaque "Pays".
    Je pense qu'il n'y a pas plus simple qu'un TCD.

    Tu sélectionnes ta plage de valeur sur A, B et C. Tu cliques sur "Insertion" / Tableau croisé dynamique. Tu le positionnes où tu le souhaites (Feuil2 par exemple). Puis tu mets "Type" sur les étiquettes de lignes, "Pays" sur les colonnes et "Somme de QTY" sur les valeurs !

    Le tour est joué ! =D

    Cordialement,
    Kimy

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2013
    Messages : 38
    Par défaut Somme avec 2 conditions vba Excel
    Merci pour votre aide mais cette opération fait partie d’un processus pour déterminer plus tard d’autre résultat, j’aurai vraiment besoin d’un Macro.

    bien à vous

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 86
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Par défaut
    Bonjour,
    Il ne faut pas nécessairement passer par VBA pour faire cela, en G2 vous inscrivez la formule


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(($A$2:$A$1203=E2)*($B$2:$B$1203=F2)*$C$2:$C$1203)
    et vous la copier vers le bas.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2013
    Messages : 38
    Par défaut Somme avec 2 conditions vba excel
    Merci pour votre aide mais j'ai déja 20 macro avant et j'en aurais encore + d'une dizaine après.
    Chaque semaine comme le parc machines change je doit adapter automatiquement.
    Je doit passer par une macro.
    J'ai vraiment besoin de votre aide
    en avance merci.

    Christian

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Salut ChNoirhomme,

    Je ne vois pas bien l'intérêt de la macro pour ton cas mais quoi qu'il en soit, je te propose ceci.
    Ca fonctionne mais je n'ai pas vérifié que les valeurs étaient exactes.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Option Explicit
     
    Sub ChNoirhomme()
    Dim i, j As Integer
    Dim rng_tab As Range
    Dim table_pays_pays()
    Dim rd As Integer
    Dim bool As Boolean
     
    With Worksheets("Feuil1")
        Set rng_tab = .Range("B2")
        rd = 1
        ReDim table_pays(1 To 3, 1 To rd)
        table_pays(1, rd) = rng_tab.Offset(0, -1)
        table_pays(2, rd) = rng_tab
        table_pays(3, rd) = rng_tab.Offset(0, 1)
     
        For i = 1 To .Columns(2).Find("*", , , , , xlPrevious).Row - 1
            If rng_tab.Offset(i, 0) <> "" Then
                bool = True
                For j = LBound(table_pays, 2) To UBound(table_pays, 2)
                    If (rng_tab.Offset(i, 0) = table_pays(2, j) And rng_tab.Offset(i, -1) = table_pays(1, j)) Then
                        table_pays(3, j) = table_pays(3, j) + rng_tab.Offset(i, 1)
                        bool = False
                        Exit For
                    End If
                Next j
     
                If bool Then
                    rd = rd + 1
                    ReDim Preserve table_pays(1 To 3, 1 To rd)
                    table_pays(1, rd) = rng_tab.Offset(i, -1)
                    table_pays(2, rd) = rng_tab.Offset(i, 0)
                    table_pays(3, rd) = rng_tab.Offset(i, 1)
                End If
            End If
        Next i
     
    '    .Range("E1") = "Type"
    '    .Range("F1") = "Pays"
    '    .Range("G1") = "QTY Total"
     
        .Range("E2:G" & .Columns(7).Find("*", , , , , xlPrevious)).ClearContents
     
        Set rng_tab = .Range("E1")
        For i = LBound(table_pays, 2) To UBound(table_pays, 2)
            For j = 0 To 2
                rng_tab.Offset(i, j) = table_pays(j + 1, i)
            Next j
        Next i
     
    End With
     
    End Sub
    Je te laisse revenir vers moi pour tout complément.

    Cordialement,
    Kimy

Discussions similaires

  1. VBA somme avec 2 conditions
    Par ChNoirhomme dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/08/2014, 19h53
  2. Somme avec une condition
    Par Philippe76 dans le forum Excel
    Réponses: 2
    Dernier message: 09/01/2010, 17h52
  3. comptages avec 2 conditions sous excel
    Par cpe81 dans le forum Excel
    Réponses: 8
    Dernier message: 11/12/2008, 13h45
  4. probleme somme avec double conditions
    Par semas dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 04/09/2008, 16h45
  5. Problème avec un code Vba Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/10/2007, 16h43

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