Recherche une valeur selon plusieurs plages

Bonjour à tous,

Je m'arrache les cheveux!!! :(:(

Je vous laisse ouvrir ma pièce jointe pour que vous puissiez comprendre ce que j'aimerai faire.

Je ne sais pas si cela est possible.

Merci d'avance pour votre aide.

30forum-excel.xlsx (13.59 Ko)

Bonjour

=SIERREUR(RECHERCHEV($B2;Feuil1!$A$2:$G$31;COLONNE(B:B);FAUX);0)+SIERREUR(RECHERCHEV($C2;Feuil1!$A$2:$G$31;COLONNE(B:B);FAUX);0)+SIERREUR(RECHERCHEV($D2;Feuil1!$A$2:$G$31;COLONNE(B:B);FAUX);0)+SIERREUR(RECHERCHEV($E2;Feuil1!$A$2:$G$31;COLONNE(B:B);FAUX);0)

A mettre en F2, étirable en bas et sur la droite normalement, n'hésite pas à demander des explications (ou me dire que ça marche pas )

Bonne journée.

Bonjour le fil, bonjour le forum,

Une autre proposition VBA :

Sub Macro1()
Dim O1 As Worksheet 'déclare la variable O1 (Onglet 1)
Dim O2 As Worksheet 'déclare la variable O1 (Onglet 1)
Dim TV1 As Variant 'déclare la variable TV1 (Tableau des Valeurs 1)
Dim TV2 As Variant 'déclare la variable TV1 (Tableau des Valeurs 2)
Dim TL(2 To 7) 'déclare la variable TL (Tableau des Lignes)

Set O1 = Worksheets("Feuil1") 'définit l'onglet O1
TV1 = O1.Range("A1").CurrentRegion 'définit le tableau des valeurs TV1
Set O2 = Worksheets("Feuil2") 'définit l'onglet O2
TV2 = O2.Range("A1").CurrentRegion 'définit le tableau des valeurs TV2
O2.Range ("F2:K" & O2.Range("A" & Application.Rows.Count).End(xlUp).Row) 'efface d'éventuelles anciennes valeurs
For I2 = 2 To UBound(TV2, 1) 'boucle 1 : sur toutes les lignes I2 du tableau des valeurs TV2
    For J2 = 2 To 5 'boucle 2 : sur 4 colonnes J2 de 2 à 5
        For I1 = 2 To UBound(TV1, 1) 'boucle 3 :'boucle 1 : sur toutes les lignes I1 du tableau des valeurs TV1
            If TV2(I2, J2) = TV1(I1, 1) Then 'condition : si le traitement ligne I2 colonne J2 de TV2 est égal au traitement ligne J1 colonne 1 de TV1
                For J1 = 2 To 7 'boucle 4 : sur 6 colonnes J1 de 2 à 7
                    'si la donnée ligne I1 colonne J1 de TV1 n'est pas vide, définit la variable indexée TL(J1) (en rajoutant les valeurs)
                    If TV1(I1, J1) <> "" Then TL(J1) = TL(J1) + TV1(I1, J1)
                Next J1 'prochaine colonne J1 de la boucle 4
                GoTo suite 'va à l'étiquette "suite"
            End If 'fin de la condition
        Next I1 'prochaine ligne I1 de la boucle 3
suite: 'étiquette
    Next J2 'prochaine colonne J2 de la boucle 2
    For I = 2 To 7 'boucle 5 sur les 6 lignes I du tableau TL
        O2.Cells(I2, I + 4).Value = TL(I) 'renvoie dans la cellules ligne I2 colonne I plus quatre, la valeur de TL(I)
    Next I 'prochaine ligne de la boucle 5
    Erase TL 'efface le tabelau TL
Next I2 'prochaine ligne I2 de la boucle 1
End Sub

Bonjour Elhavan,

Vraiment désolée de te répondre seulement maintenant, mais je viens à l'instant de tester ta formule.

Elle est tout simplement MAGIQUE!!

Merci +++++

Et en plus j'ai tout compris.

Encore merci et bon week-end

Rechercher des sujets similaires à "recherche valeur plages"