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.
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 SubBonjour 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