Macro pour Additionner des cellules selon critères

Bonjour à tous,

Je viens vers vous pour obtenir une aide pour créer une macro me permettant d'additionner des cellules selon les en têtes de colonnes.

Dans l'exemple joint, je cherche à indiquer, pour chaque ligne, dans la dernière colonne +1 la somme des cellules de la ligne ayant pour en tête de colonne le texte "L", "N" et "O" sachant que les colonnes sont variables.

Le nombre de ligne également est variable

Merci d'avance pour l'attention que vous accorderez à ma requête

Sophie

40test.xlsx (13.08 Ko)

Bonjour Sophie,

As-tu vraiment besoin d'une macro ... ou est-ce pour comprendre comment 'une macro' s'y prendrait ...? :

Bonjour James,

J'en ai réellement besoin.

J'ai des exports quotidien que je dois gérer selon la valeur de l'en tête de colonne. Et bien sur l'emplacement des colonnes diffère en fonction des résultats...

Je voudrai incorporer cette procédure dans mon programme Global qui gère une trentaine de fichier. Histoire de ne pas le faire à la main.

Après effectivement que je suis curieuse de voir comment s'y prendre, sachant que j'ai passé 3h à essayer sans succès...

Re,

Entendu ... dès que j'ai un petit moment ... je te prépare ta macro ...

En attendant ... les formules ...elles ... sont faites en 2 minutes ...

Merci c'est gentil

je poste quand même ce que j'ai tenté de faire. Si tu peux m'aiguiller sur ce qui tourne pas rond dans ma tête également

Sub test()

DerColonne = Cells(1, Columns.Count).End(xlToLeft).Column
Derligne = Range("A" & Rows.Count).End(xlUp).Row

j = 1

For j = 1 To DerColonne
    If Cells(1, j) = "L" Then
        L = j
    ElseIf Cells(1, j) = "N" Then
        N = j
    ElseIf Cells(1, j) = "O" Then
        O = j
    End If
j = j + 1

Next j

i = 1

For i = 1 To Derligne    
    Cells(i, DerColonne + 1).Value = Application.WorksheetFunction.Sum(Cells(i, L), Cells(i, N), Cells(i, O))
i = i + 1

Next i

End Sub

Sophie

Re,

Ci-joint ton fichier test ... avec la macro ...

En espèrant que cela t'aide ...

Parfait ça fonctionne très bien

Un grand merci pour ton aide

Encore une fois ma réflexion n'était pas bonne

Sophie123 a écrit :

Parfait ça fonctionne très bien

Un grand merci pour ton aide

Ravi que cela puisse t'aider ...

Merci .......pour tes très gentils remererciements ...

re

Finalement mon raisonnement était pas complètement à jeter

ça a l'air de fonctionner également avec ça....

Sub test()

DerColonne = Cells(1, Columns.Count).End(xlToLeft).Column
Derligne = Range("A" & Rows.Count).End(xlUp).Row

For j = 1 To DerColonne
    If Cells(1, j) = "L" Then
        L = j
    ElseIf Cells(1, j) = "N" Then
        N = j
    ElseIf Cells(1, j) = "O" Then
        O = j
    End If
Next j

For i = 2 To Derligne

    Cells(i, DerColonne + 1).Value = Cells(i, L) + Cells(i, N) + Cells(i, O)

Next i

End Sub

C'est certainement moins optimal que ta solution, mais j'ai voulu persévérer dans ma réflexion

A+

Sophie

Félicitations ...

Là ... comme ailleurs ... c'est en essayant ... en faisant des tests ...ET en se trompant ... que l'on apprend ...

Coucou Sophie,

Dans ta macro standard Test() du message précédent .. tu utilises Cells ( i , j ) ...

et tu vois bien que la variable i correspond aux lignes ... et la variable j correspond aux colonnes ...

Rechercher des sujets similaires à "macro additionner criteres"