Microsoft 365 Regroupement résultats de plusieurs requêtes EXCEL dans un tableau de synthèse sans VBA si possible

BKALOI

XLDnaute Nouveau
Bonjour à tous,
Je suis nouveau sur le Forum et novice dans l'utilisation d'outils avancés d'excel.
J'ai consulté plusieurs posts et d'autre forum et à part la VBA qui est pour moi inaccessible, je n'ai rien trouvé.
Ce que je souhaite faire c'est synthétiser les résultats de plusieurs requêtes que je lance à l'aide d'une liste de 40 objets.
Le tableau SYNTHESE doit regrouper l'ensemble des informations recueillies mais sans les doublons svp
Voici le tableau que j'ai fait et sur lequel je bloque par manque de compétence.
N'hésitez pas si besoin.
Merci par avance
 

Pièces jointes

  • Recherche par IB.xlsx
    230.4 KB · Affichages: 16
Solution
Le filtre se fait sur cette ligne :
VB:
ActiveSheet.Range("$A$2:$M" & Derlig).RemoveDuplicates Columns:=4, Header:=xlYes
Columns:=2 filtre sur colonne 2 donc B donc N°IB
Columns:=4 filtre sur colonne 4 donc D donc N°Police

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bkaloi,
Donc en Synthèse vous voulez l'ensemble des informations de toutes les feuilles et sans doublons ?
Un doublon se fait je pense par l'examen de N°IB ?

Sans VBA je laisse à d'autres, je ne me sens pas à l'aise.
Par contre avec VBA ... :)
"Just for the fun " un exemple en PJ, le rapatriement s'effectue lorsqu'on sélectionne la feuille Synthèse. Avec juste :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    Sheets("SYNTHESE").Range("A3:M1000").ClearContents              ' On efface la matrice Synthèse
    Lw = 3                                                          ' Index écriture dans Synthèse
    For Each sh In Worksheets                                       ' Boucle sur chaque feuille de chaque classeur
        If sh.Name <> "SYNTHESE" And sh.Name <> "Liste des IB" Then ' Pour toute page exeptées ces deux là
            Derlig = Sheets(sh.Name).Range("A65500").End(xlUp).Row  ' Calcul dernière ligne à exploiter
            If Derlig > 2 Then                                      ' Si <2 alors vide
                For Lr = 3 To Derlig                                ' Pour toutes les lignes
                    For C = 1 To 13                                 ' Pour les colonnes de A à M
                        If Sheets(sh.Name).Cells(Lr, C) <> "" Then  ' Si cellule non vide on la recopie dans Synthèse
                            Sheets("SYNTHESE").Cells(Lw, C) = Sheets(sh.Name).Cells(Lr, C)
                        End If
                    Next C
                    Lw = Lw + 1                                     ' La ligne étant recopiée, on incrémente l'index d'écriture
                Next Lr
            End If
        End If
    Next sh
    SupDoublons
End Sub
 

Pièces jointes

  • Recherche par IB.xlsm
    221.3 KB · Affichages: 3
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 199
Messages
2 086 159
Membres
103 145
dernier inscrit
lea.