Recherche dans des tableaux et synthère sur un autre sans doublons

Salut la compagnie ^^

J'ai grand besoin de vous. Voilà, pour faire simple j'ai un logiciel au boulot qui a été dévellopé uniquement pour cette entreprise. Je doit copier certaines données en rapport avec certains contrats et l'idée de la construction de mon fichier est de synthétiser les données rapidement et d'avoir une vision claire sur ce que je doit prioriser.

Je m'explique un peu afin que vous compreniez.

Je colle mes données copié (par magasin) dans chaque onglets (ici pour exemple, Carefour 1, 2 et 3) J'ai volontairement un peu saisi n'importe quoi, ce qui m'interesse étant uniquement la commune, le numéro de secteur, et le nombre de documents par secteurs :

image

Ensuite toute mes données sont regroupées dans l'onglet synthèse ou j'ai mis de simples formules pour aller chercher les données dans ces onglet carefour (avec un SI au cas ou c'est vide de mettre le signe - .

image

Maintenant il y a deux choses qui m'interessent /

- Je souhaiterais que les données des 3 tableaux (carrefour 1, 2 et 3) apparaissent dans le dernier tableaux à droite "doublons supprimés" MAIS sans doublons car dans ces 3 tableaux il est fréquent que des données soient les même et la j'ai synthétisé pour l'exemple mais dans la réalité il y a desfois plus de 100 lignes par tableau...

- Et dernière chose, si les données apparues dans le tableau "doublons supprimés" figurent également dans les données du tableau de l'onglet "controle" (voir capture ci-dessous), je voudrait qu'elles s'affichent en police rouge dans le tableau doublons suppeimés.

image

Au final dans ce fichier je voudrais uniquement a avoir a coller mes données et ensuite voir dans l'onglet synthèse que ces données soient triées. Je suis obligé de passer par du copier/coller car pas moyen d'extraction des données.

Voilà, j'espère que j'ai été assez clair, a vrai dire je sais même pas ou placer les formules...J'espère que vous pourrez m'aider, et je vous en remercie d'avance :)

A bientôt

Bonjour

Si tu installes l'add on PowerQuery (intégré à Excel à partir de 2016, en add on à partir de 2010) : tout cela peut se faire très simplement sans passer par des copier coller, mais en récupérant automatiquement dans les fichiers sources

Bonjour,

Le pack office à mon travail est trop ancien. Quelqu'un pourrait m'aider à résoudre mon problème ? J'ai beau chercher je trouve aucunes réponse à mes 2 questions 🙄

Bonjour Alex,

As-tu un fichier sur lequel travailler ?

Bonjour,

Le pack office à mon travail est trop ancien. Quelqu'un pourrait m'aider à résoudre mon problème ? J'ai beau chercher je trouve aucunes réponse à mes 2 questions 🙄

Bonjour à tous

PowerQuery comme indiqué s'installe sur 2010 qui figure dans ton profil.

si ce n'est pas ta version précise les choses

Je recherche avant tout les formules expliquées plus haut pour réussir à mettre au point mon fichier de calcul et pour pouvoir arbitrer rapidement 🙄

Plutôt que des formules, ce que j'avais en tête c'était de compiler les différents onglets dans une "base de données" et travailler par filtre et/ou TCD. De toute façon sans fichier ce sera difficile de répondre.

Jai posté des captures d'écran, dans un premier temps suite à mes collages (qui sont pas longs, 15 min au +) cela ce met au propre dans la synthèse. Il faudrait juste que les doublons dans le tableau final soient supprimés automatiquement et que pour finir les lignes dans se tableau final qui apparaissent dans le tableau "contrôles" soient affichés en rouge.

Je peux pas faire ça avec du tcd, ou ça serait long et chronophage

Sans un bout de fichier à la place des images, c'est difficile de répondre ...

Je ne suis pas fan à 100% des macros mais je ne suis pas fan du tout des formules car on ne sait pas où s'arrêtent les données. Et puis il faut de toute façon compiler et avec des formules matricielles cela devient complexe.

Donc je te propose quand même une macro de compilation et suppression des doublons :

Sub compiler()
Dim f As String, m As Worksheet, s As Worksheet

    mag = Array("Stop-Pub", " Carrefour Chalezeule", "Carrefour Valentin") ' liste des onglets concernés
    col = Array("L", "M", "O") ' colonnes à recopier
    Set s = Sheets("Synthèse2")
    s.Range("A1").CurrentRegion.Offset(1, 0).ClearContents ' effacement

    ' recopie
    For i = 0 To UBound(mag)
        Set m = Sheets(mag(i))
        derM = m.Range(col(0) & Rows.Count).End(xlUp).Row
        derS = s.Range("A" & Rows.Count).End(xlUp).Row + 1
        If derM >= 5 Then
            For j = 0 To UBound(col)
                m.Range(col(j) & 5 & ":" & col(j) & derM).Copy _
                Destination:=s.Cells(derS, j + 1)
            Next
        End If
    Next

    ' suppression des doublons
    s.Select
    s.Columns("A:C").Select
    derS = s.Range("A" & Rows.Count).End(xlUp).Row
    s.Range("$A$1:$C$" & derS).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes

End Sub

Merci infiniment Steelson,

J'ai ouvert le fichier et vu que tu avait déjà collé les lignes de codes VBA dans le fichier, par contre je comprend pas comment le fichier fonctionne. Une fois mes données extraites et collées dans les onglets en questions (Stop pub, carrefour Chalzeule, Carrefour Valentin) Il devrait pas y avoir un bouton cliquable pour qu'il cherche les doublons et mette tous en page propre dans l'onglet Synthèse ? Aussi, il faudrait que les résultats apparaissent dans le tableau "doublons supprimés" de l'onglet "synthèse" et que si les données dans ce tableau "doublons supprimés" apparaissent également dans l'onglet "panel carrefour", alors qu'elles se mettent en couleur rouge gras dans le tableau doublons supprimés.

image

Le tableau "réclamations" je m'en fiche c'est pour autre chose.

Est-ce que je peut supprimé l'onglet "synthèse 2" ? Je me souviens plus avoir mis ca, en tous cas il me sert à rien car tous se visualiserais dans le tableau doublons supprimés mais aussi dans les trois premiers tableaux (Stop pub, carrefour chalezeule, carrefour valentin)

Je remet le fichier propre

Merci à toi.

Est-ce que je peut supprimé l'onglet "synthèse 2" ? Je me souviens plus avoir mis ca, en tous cas il me sert à rien car tous se visualiserais dans le tableau doublons supprimés mais aussi dans les trois premiers tableaux (Stop pub, carrefour chalezeule, carrefour valentin)

Oui, tu peux supprimer Synhèse2 qui est le résultat de la macro : je l'ai créer pour te montrer le résultat obtenu et savoir si cela te convenait ! cela remplace les 3 tableaux en question. Je peux aussi rajouter la provenance des lignes.

J'ai ouvert le fichier et vu que tu avait déjà collé les lignes de codes VBA dans le fichier, par contre je comprend pas comment le fichier fonctionne.

La macro

  1. va chercher les informations dans les 3 onglets
  2. les colle à la queue leu leu dans l'onglet Synthèse2 (cela évite les formules qui pointent sur des listes dont on ne connait pas la longueur, et en même temps cela compile le tout)
  3. supprime les doublons ...
  4. je n'ai pas (encore) fait la coloration en rouge, je n'y ai pas réfléchi à ce stade

Pour coller davantage à ta présentation ...

Sub compiler()
Dim f As String, m As Worksheet, s As Worksheet

    mag = Array("Stop-Pub|B", " Carrefour Chalezeule|F", "Carrefour Valentin|J") ' liste des onglets concernés et colonne de recopie
    col = Array("L", "M", "O") ' colonnes à recopier
    Set s = Sheets("Synthèse")
    s.Range("B4").CurrentRegion.Offset(1, 0).ClearContents ' effacement
    s.Range("F4").CurrentRegion.Offset(1, 0).ClearContents ' effacement
    s.Range("J4").CurrentRegion.Offset(1, 0).ClearContents ' effacement
    s.Range("N4").CurrentRegion.Offset(1, 0).ClearContents ' effacement

    ' recopie
    For i = 0 To UBound(mag)
        Set m = Sheets(Split(mag(i), "|")(0))
        dest = Split(mag(i), "|")(1)
        derM = m.Range(col(0) & Rows.Count).End(xlUp).Row
        derS = s.Range("N" & Rows.Count).End(xlUp).Row + 1
        If derM >= 5 Then
            For j = 0 To UBound(col)
                m.Range(col(j) & 5 & ":" & col(j) & derM).Copy Destination:=s.Range("N" & derS).Offset(0, j)
                m.Range(col(j) & 5 & ":" & col(j) & derM).Copy Destination:=s.Range(dest & 5).Offset(0, j)
            Next
        End If
    Next

    ' suppression des doublons
    s.Select
    s.Columns("N:P").Select
    derS = s.Range("N" & Rows.Count).End(xlUp).Row
    s.Range("$N$5:$P$" & derS).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
    s.Range("$N$5").Select

End Sub

@Alex21000 ... cette solution répond elle bien à ton souhait ?

Salut Steelson !

Vraiment désolé j'ai pas été notifié de ta réponse. Merci beaucoup à toi ^^

En fait mon fichier à un peu évolué, j'ai un petit challenge pour qui veut, en privé peut être car mon fichier fait plus d'un MO.

Vu vos compétences, ca dovrait pas être très compliqué pour vous. J'ai mon fichier prêt avec des exports à l'intérieur.

Tenez moi informé si ca vous intéresse, sinon je ferais un nouveau post.

:)

Ouvre un nouveau post, c'est plus sain pour les recherches.

Si ce sujet est terminé, n'oublie pas de clore en cliquant sur V

Rechercher des sujets similaires à "recherche tableaux synthere doublons"