Macro pour fichier synthèse

Bonjour,

Dans le cadre de mon travail, je suis amenée à faire des relevés ruptures de produits.

Chaque relevé correspond à une feuille de mon fichier (relevé du 05/12 en feuille 1, relevé du 10/11 en feuille 2, etc etc) sachant que chaque nouveau relevé est ajouté à mon fichier au fur et à mesure.

Je cherche par conséquent à créer sur ma 1ère feuille une synthèse.

Je veux avoir un bouton macro pour créer une nouvelle feuille pour y copier chaque nouveau relevé (ça c'est bon, je sais faire..)

Sur cette même feuille Synthèse, je voudrais avoir la liste des produits dont les codes (qui sont dans la colonne A de chacune des feuilles) sont apparus sur au moins 2 fois (c'est à dire sur 2 feuilles) ainsi que la date des relevés correspondants (=le nom des feuilles correspondantes).

Le but étant de mettre en relief les lignes apparaissant plusieurs fois dans l'ensemble des feuilles du fichier. Je ne sais pas si je suis claire

Sachant qu'il faut imaginer que d'autres feuilles vont se rajouter au fur et à mesure, pensez vous qu'il soit possible de créer une macro qui prendrait cette variable en plus (avec un bouton pour actualiser ça, ça serait tellement bien ) ??

J'en profite par ailleurs pour vous demander s'il est possible de modifier la macro de ma feuille de synthèse : est-il possible lorsque ma macro créé une feuille supplémentaire de nommer celle-ci avec la date du jour directement ? (flemme quand tu nous tiens )

Je vous joins mon fichier de base, sur lequel j'ai déjà créé la feuille synthèse pour vous montrer ce que j'espère avoir

Merci d'avance !!!

Bonjour et bienvenue sur le forum

Je vous joins mon fichier de base,

Tu as dû faire une mauvaise manip car je ne vois rien...

Bye !

Alors là ça commence bien

Je suis sur la route du coup je mettrai le fichier une fois posée

Bonjour

Voici avec beaucoup de retard (désolée ) le fichier de base ...

J'espère que l'un d'entre vous pourra m'aiguiller

Un essai à tester. Te convient-il ?

Bye !

Salut GMB,

Ce n'est pas exactement ça mais merci de t'être penché sur la question déjà ...

en fait, si tu reprends la feuille de synthèse, j'aimerai en déclenchant la macro, n'obtenir dans le tableau, que les données qui apparaissent plus d'une fois dans l'ensemble de mes feuilles relevés et uniquement celles là.

Par exemple, le "gencod" (colonne A de chaque feuille) N° 8722700775003 (DOUCEUR LEGUMES BIO KNORR 1L) a été relevé 2 fois sur 3 (dans ma feuille 05-12-17 et 06-11-17) J'aimerai donc que cette donnée remonte sur ma feuille synthèse.

A contratio, le gencod 3273120024660 ORGE PERLEE 500G BIO n'a été relevé qu'une seule fois (sur ma feuille 05-12-17), je n'en ai donc pas besoin.

Le but étant de n'avoir sur ma feuille de synthèse que les doublons, triplons etc etc. Dans le but de mettre en lumière les produits qui sont régulièrement en ruptures, en ayant effectivement les dates des relevés correspondant (colonnes E - F - G actuellement et d'autres à rajouter à chaque nouveau relevé)

j'espère que c'est plus clair ainsi

Bonjour

Nouvel essai.

Bye !

Re

Tu n'as pas mis le nouveau fichier en pj.

Si jamais tu as modifié l'ancien, j'obtiens le même résultat

edit : je viens de penser à un truc : peut-être est-ce plus simple à mettre en place la recherche des gencods communs au dernier relevé effectué. Je m'explique :

J'ai fait un relevé le 16/10, le 06/11 et le 05/12.

Admettons que je fasse un relevé le 03/01. Je crée alors une nouvelle feuille dans laquelle je colle mon relevé.

Je lance alors la mise à jour de ma feuille synthèse. Est ce alors plus simple de faire de ce dernier relevé (du 03/01) ma source pour vérifier si les gencods de ma colonne A ont déjà été saisi sur les précédents relevés (et dans ce cas, à quelle date = colonnes E, F, G etc etc )

Je ne sais pas si c'est plus simple à mettre en place ?

Tu n'as pas mis le nouveau fichier en pj.

Décidémen, c'est la 2° fois aujourd'hui ...

Le voici :

En fait, il était trop gros, j'ai dû le compresser.

Bye !

Super

Ca a l'air de marcher

Est ce qu'il y a une manip à faire pour que ça me prenne en compte une feuille supplémentaire quand je l'ajouterai ou est-ce prévu dans ta macro ?

Je vois enfin le bout du tunnel grâce à toi

est-ce prévu dans ta macro ?

C'est prévu mais... à tester !

Bye !

Voilà où j'en suis

J'ai fait quelques modifs et j'ai intégré mon bouton pour créer mes nouveaux relevés (nommés en date du jour, comme je le voulais)

Ne reste plus qu'à savoir si ça marche en ayant 5, 6, 8, 20 feuilles...

En tout cas merci beaucoup

Bonjour jusu09, gmb

La référence ci-dessous apparaît 2 fois dans la feuille "05-12-17" et seulement dans cette feuille

3273120024660 ORGE PERLEE 500G BIO

Je pense qu'elle ne doit pas apparaître dans la feuille de synthèse si je ne me trompe

klin89

La référence ci-dessous apparaît 2 fois dans la feuille "05-12-17" et seulement dans cette feuille

3273120024660 ORGE PERLEE 500G BIO

Je pense qu'elle ne doit pas apparaître dans la feuille de synthèse si je ne me trompe

J'avais en effet remarqué ça.

Mais la macro respecte les consignes :

Le but étant de mettre en relief les lignes apparaissant plusieurs fois dans l'ensemble des feuilles du fichier.

Si les doublons sont sur la même feuille, c'est un cas particulier qu'il n'est pas demandé de traiter autrement....

Bye !

Re jusu09,

Si j'ai bien compris

Sub test1()
Dim a, e, w(), x(), i As Long, j As Byte, n As Long, ws As Worksheet, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    For Each ws In Worksheets
        If ws.Name <> "synthèse ruptures récurrentes" Then
            a = ws.Range("a1").CurrentRegion.Resize(, 4).Value
            For i = 2 To UBound(a, 1)
                If Not dico.exists(a(i, 1)) Then
                    ReDim w(1 To 2): ReDim x(1 To 4)
                    Set w(2) = CreateObject("Scripting.Dictionary")
                    For j = 1 To UBound(a, 2)
                        x(j) = a(i, j)
                    Next
                    w(1) = x
                    dico(a(i, 1)) = w
                End If
                w = dico(a(i, 1))
                If Not w(2).exists(ws.Name) Then
                    w(2)(ws.Name) = Empty
                    x = w(1)
                    ReDim Preserve x(1 To UBound(x) + 1)
                    x(UBound(x)) = ws.Name
                    w(1) = x
                    dico(a(i, 1)) = w
                End If
            Next
        End If
    Next
    Application.ScreenUpdating = False
    With Sheets("synthèse ruptures récurrentes").Range("a13").CurrentRegion
        With .Offset(1)
            .ClearContents
            For Each e In dico.keys
                If dico.Item(e)(2).Count > 1 Then
                    .Offset(n).Resize(1, UBound(dico.Item(e)(1))) = dico.Item(e)(1)
                    n = n + 1
                End If
            Next
        End With
    End With
    Set dico = Nothing
    Application.ScreenUpdating = True
End Sub

klin89

Rechercher des sujets similaires à "macro fichier synthese"