rechercher valeurs avec des critères spécifiques

yannick63430

XLDnaute Junior
Bonjour à tous,

j'ai besoin d'aide pour créer un onglets de synthèse qui récapitule tous les onglets.
Ainsi dans mon onglet synthèse, j'ai dans la colonne 1 la liste générale de tous mes comptes possibles et existants. Sur la première ligne, la liste de tous mes onglets.
je voudrais donc qu'en fonction de ces deux critères (ligne 1 et col 1), je puisse retrouvé le montant correspondant de l'onglet (col 3)
Comme vous l'avez compris, il faut que la macro déroule "la formule" tant qu'il y a un compte et tant que mes onglets existe (ou font référence à la ligne 1)
A la fin j'ai plus de 50 onglets!!!

j'ai essayé de réaliser une sorte de consolidation via macro mais sans succès (je débute toujours dans ce domaine).

j’espère avoir été clair!
Merci d'avance

Cordialement
yannick

NB : Cijoint.fr - Service gratuit de dépôt de fichiers
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : rechercher valeurs avec des critères spécifiques

Bonsjour Yannick, bonjour le forum,

Je te propose la macro commentée ci-dessous :
Code:
Sub Macro1()
Dim pc As Range 'déclare la variable pc (Plage en Colonne)
Dim pl As Range 'déclare la variable pl (Plage en Ligne)
Dim cel1 As Range 'déclare la variable cel1 (CELlule1)
Dim cel2 As Range 'déclare la variable cel2 (CELlule2)
Dim r As Range 'déclare la variable r (Recherche)
 
With Sheets("synthèse") 'prend en compte l'onglet "synthèse"
    Set pc = .Range("A2:A" & .Range("A65536").End(xlUp).Row) 'définit la plage en colonne pc
    Set pl = .Range("B1:" & .Range("IV1").End(xlToLeft).Address(0, 0)) 'définit la plage en ligne pl
End With 'fin de la prise en compte de l'onglet "synthèse"
 
For Each cel1 In pc 'boucle 1 : sur toutes les cellules éditées cel1 de la plage pc
    For Each cel2 In pl 'boucle 2 : sur toutes les cellules éditées cel2 de la plage pl
        'définit la recherche (recherche la valeur de cel1 dans la colonne 1 de l'onglet du même nom que la valeur de cel2)
        Set r = Sheets(cel2.Value).Columns(1).Find(cel1.Value, , xlValues, xlWhole)
        If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
            'place dans l'intersection la somme de la colonne C de l'occurrence trouvée
            Sheets("synthèse").Cells(cel1.Row, cel2.Column).Value = r.Offset(0, 2).Value
            Exit For 'sort de la boucle 2
        End If 'fin de la condition
    Next cel2 'prochaine cellule de la boucle 2
Next cel1 'prochaine cellule de la boucle 1
End Sub
 
Dernière édition:

yannick63430

XLDnaute Junior
Re : rechercher valeurs avec des critères spécifiques

bonjour robert,

merci pour ton aide. Cependant lorsque j'ai lancé ta macro, pour P1 soit la colonne 2 tout va bien. Mais ensuite pour P2, elle ne reprend pas tous les montants.
en effet dès qu'il a une correspondance en P1 (colonne 1), la macro ne fait pas correspondre le montant qui existe pourtant pour la colonne P2.
J'espère qu'il y a une solution!!

Merci d'avance
Cordialement
Yannick
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise