Code long

Bonjour, j'ai mon code est cela fonctionne mais je trouve que c'est assez lourd. Je récupère ma valeur total et j'inscris la somme dans une autre cellule ensuite je dois refaire cette manipulation pour récupérer un deuxième total que je le saisie dans une autre cellule. Est-il possible de simplifier le code ?

Dim i1, i2, i3, i4, i5,

i1= Application.WorksheetFunction.SumIf(Range("A1:A10"), "mon_mot1", Range("B1:B10"))
i2= Application.WorksheetFunction.SumIf(Range("A1:A10"), "mon_mot2", Range("B1:B10"))
i3= Application.WorksheetFunction.SumIf(Range("A1:A10"), "mon_mot3", Range("B1:B10"))
i4= Application.WorksheetFunction.SumIf(Range("A1:A10"), "mon_mot4", Range("B1:B10"))
i5= Application.WorksheetFunction.SumIf(Range("A1:A10"), "mon_mot5", Range("B1:B10"))

total = i1 + i2 + i3 + i4 + i5

i1 = 0
i2 = 0
i3 = 0
i4 = 0
i5 = 0
total = 0

Merci

Bonjour,

Sub test()
    Dim i%, total
    For i = 1 To 5
        total = total + WorksheetFunction.SumIf(Range("A1:A10"), "mon_mot" & i, _
         Range("B1:B10"))
    Next i
End Sub

NB- Range non qualifiées...

Cordialement.

Cela n'allège pour l'essentiel que l'écriture...

Merci à toi, je joins un fichier à ma demande, est-ce que c'est possible d'addition deux données et récupérer la somme dans une variable ? Par exemple faire la somme de ballon + raquette pour chacun des trois tableaux ? (Par exemple dans mon fichier i2 devrait être égal à 110).

Merci

11exemple.xlsx (9.34 Ko)

Personne ne sait ?

Tout dépend ce que tu veux faire avec...

Avec ça tu as le total pour chaque objet...

Sub Additions()
    Dim d As Object, k, n%, i%
    Set d = CreateObject("Scripting.Dictionary")
    With ActiveSheet
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 1 To n
            If .Cells(i, 1) <> "" Then
                k = .Cells(i, 1)
                Select Case k
                    Case "Objets", "Total"
                    Case Else
                        d(k) = CInt(d(k)) + .Cells(i, 2)
                End Select
            End If
        Next i
    End With
    MsgBox d("Ballon")
    MsgBox d("Raquette")
    MsgBox d("Chaussure")
End Sub

Merci pour le temps que tu me consacres.

En fait ce que j'aimerais bien c'est avoir la somme de raquette + ballon pour le premier tableau dans une variable (i2 par exemple) avoir le somme de raquette + ballon du 2ème tableau dans une variable (j2 par exemple). Cela est-il possible ?

Tout est possible !

Tu défiles les lignes du 1er tableau : si Raquette ou Ballon en A, tu additionnes la valeur en B dans une variable, et tu auras le total voulu dans cette variable à la fin.

Le principe est toujours le même...

OK merci je vais voir ça. Pour moi le problème c'était les lignes vides entre les tableaux, je ne sais pas comment lui dire à partir de quel moment s'arrêter.

Tu peux nommer tes tableaux pour y accéder facilement et individuellement...

MFerrand a écrit :

Tu peux nommer tes tableaux pour y accéder facilement et individuellement...

OK je vais voir ça merci.

Bonjour,

avec un TCD et un segment, mais j'en trouve 166...

eric

2exemple.xlsx (15.19 Ko)
Rechercher des sujets similaires à "code long"