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 :

Quelle sont les nombres dans une plage leures sommes equale un nombre connue


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    comptable principal
    Inscrit en
    Octobre 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Autre

    Informations professionnelles :
    Activité : comptable principal
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 434
    Points : 170
    Points
    170
    Par défaut Quelle sont les nombres dans une plage leures sommes equale un nombre connue
    Bonjour
    J’ai une plage A1 :A100 qui contienne des nombres
    En C1 j’ai un nombre qui est le total de 6 valeurs ou mois de la plage A1 :A100
    Comment faire une macro qui exécute les étapes suivantes :
    - Colorer ou sélectionnée les cellules leurs somme égale la valeur en C1
    - Afficher vers une autre plage E1 les cellules colorées ou sélectionnée
    -Supprimer les cellules colorées ou sélectionnée dans la plage principale A1 :A100 et chercher une autre combinaison si possible et l’affiche à côté de la premier combinaison
    J’ai reçu un code par Mr Hervé Silve ce code travail sur la somme de trois valeurs et moi je le modifier pour 6 valeurs ou moins mais le reste je ne sais pas comment faire
    Aidez-moi svp
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Sub ChercherTotal()
     
        Dim Tbl1() As Double
        Dim Tbl2() As Double
        Dim Tbl3() As Double
        Dim Tbl4() As Double
        Dim Tbl5() As Double
        Dim Tbl6() As Double
        Dim plage As Range
        Dim I As Long
        Dim J As Long
        Dim K As Long
        Dim L As Long
        Dim M As Long
        Dim N As Long
        Dim Max As Long
        Dim OK As Boolean
        Dim Total As Double
     
        'plage en colonne A
        Set plage = Range([a1], Range("A" & Rows.Count).End(xlUp))
     
        'total cherché
        Total = Range("c1").Value
     
        'rempli le 1er tableau avec la plage
        '(plus rapide que de travailler après sur le range)
        For I = 1 To plage.Count
     
            ReDim Preserve Tbl1(1 To I)
            Tbl1(I) = plage(I)
     
        Next I
     
        'redimensionne les autres tableaux
        ReDim Tbl2(1 To UBound(Tbl1))
        ReDim Tbl3(1 To UBound(Tbl1))
        ReDim Tbl4(1 To UBound(Tbl1))
        ReDim Tbl5(1 To UBound(Tbl1))
        ReDim Tbl6(1 To UBound(Tbl1))
        'égalité pour les trois tableaux
        Tbl2 = Tbl1
        Tbl3 = Tbl1
        Tbl4 = Tbl1
        Tbl5 = Tbl1
        Tbl6 = Tbl1
        'dimension maximale pour les boucles
        Max = UBound(Tbl1)
     
        'moulinette...
        For I = 1 To Max
     
            For J = I + 1 To Max
     
                For K = J + 1 To Max
     
                    For L = K + 1 To Max
     
                        For M = L + 1 To Max
     
                            For N = M + 1 To Max
                                'effectue la comparaison (total des 3 dimensions)
                                If Tbl1(I) + Tbl2(J) + Tbl3(K) + Tbl4(L) + Tbl5(M) + Tbl6(N) = Total Then
     
                                'colore en rouge les 3 cellules correspondantes
                                plage(I).Interior.ColorIndex = 4
                                plage(J).Interior.ColorIndex = 4
                                plage(K).Interior.ColorIndex = 4
                                plage(L).Interior.ColorIndex = 4
                                plage(M).Interior.ColorIndex = 4
                                plage(N).Interior.ColorIndex = 4
                                'afficher les plage vers une autre plage
                                Range("e1").Value = plage(I).Value
                                Range("e2").Value = plage(J).Value
                                Range("e3").Value = plage(K).Value
                                Range("e4").Value = plage(L).Value
                                Range("e5").Value = plage(M).Value
                                Range("e6").Value = plage(N).Value
                                'résultat OK, fin de procédure
                                OK = True
                                Exit Sub
                                End If
                            Next N
     
                        Next M
     
                    Next L
     
                Next K
     
            Next J
     
        Next I
        'si pas trouvé
        If OK = False Then
     
            MsgBox "Aucune combinaison possible !"
     
        End If
     
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2007] Trouver les nombres dans une plage leures sommes equale un nombre connue
    Par iliesss dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/09/2012, 00h26
  2. quelles sont les références dans les annonceurs ?
    Par michael866 dans le forum Publicité
    Réponses: 0
    Dernier message: 08/06/2011, 21h17
  3. Réponses: 7
    Dernier message: 18/10/2008, 12h23
  4. [TASM] Quelles sont les erreurs dans ce programme ?
    Par S.H dans le forum x86 16-bits
    Réponses: 7
    Dernier message: 25/12/2007, 22h05
  5. Réponses: 4
    Dernier message: 13/09/2006, 14h17

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