Remplissage automatique colonne suivant réglés spécifiques

Bonjour a tous,
J'aimerai avec votre aide, une macro ou une fonction qui me permet de remplir automatiquement ma colonne "B - CODE LOT" du dossier "FICHIER DE TRAVAIL". Le lien entre les deux dossiers FICHIERS DE TRAVAIL ET BASE sont la colonne A - DESIGNATION.
Dans mon fichier BASE il y à des DESIGNATIONS qui ont plusieurs CODE LOT différents , qui sont eux aussi par moment doublées, triplées etc…
Je ne veux pas qu'une ligne sois utilisé 2 fois !

Je veux pour mon exemple :
Pour les 3 DESIGNATIONS "PILOU" les 3 premières lignes de mon fichier BASE avec PILOU, avec du coup, le code lot doublé + le code lot seul
Pour les 3 DESIGNATIONS "BACOU" les 2 premières lignes de mon fichier BASE avec BACOU, avec du coup, le code lot doublé
ATTENTION AU POINT DU CODE LOT !!!!
Si la fichier de travail demande 10 lignes PILOU et que seulement 7 sont disponibles comme dans l'exemple, ajouter un message "VIDE" ou "A COMPLETER"
MERCI de votre aide !

Je vous met en pièce jointe mon fichier test.

5fichier-test.xlsx (12.28 Ko)

Bonjour Loulou93

Un essai : macro "SynchroniserTravail"

Bonjour SCRAPER,

Je viens de faire un test avec ta macro.

Elle ne prend pas en compte les "codes lots" doublés. Elle ne me propose qu'un seul code lot a chaque fois..

Je n'y connais vraiment pas grand chose en VBA ..

Je te remercie en tout cas de l'aide

Bonjour Loulou93, scraper et le forum

Essaie ceci, je n'ai pas testé.

Option Explicit
Sub test()
    Dim a, i As Long, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    a = Sheets("Base").Cells(1).CurrentRegion.Value
    For i = 2 To UBound(a, 1)
        If Not dico.exists(a(i, 1)) Then
            Set dico(a(i, 1)) = CreateObject("System.Collections.ArrayList")
        End If
        dico(a(i, 1)).Add a(i, 2)
    Next
    With Sheets("FICHIER DE TRAVAIL").Cells(1).CurrentRegion
        a = .Value
        For i = 2 To UBound(a, 1)
            If dico.exists(a(i, 1)) Then
                If dico(a(i, 1)).Count Then
                    a(i, 2) = dico(a(i, 1))(0)
                    dico(a(i, 1)).RemoveAt 0
                Else
                    a(i, 2) = "A compléter"
                End If
            End If
        Next
        .Value = a
    End With
    Set dico = Nothing
End Sub

Je n'ai pas compris ceci :

Je ne veux pas qu'une ligne sois utilisé 2 fois !

klin89

Bonjour Loulou93

Un ajout de la fréquence d'apparition des codes_lot si ceux -ci se suivent

ne voulez-vous pas aussi que les lignes 6,7,8 de BASE

PILOUA001001.004
PILOUA001001.004
PILOUA001001.004

ajoutent une ligne dans 'Fichier de travail"?

PILOUA001001.004 3

et que

BACOUA002001.003

ajoute une ligne dans 'Fichier de travail"?

BACOUA002001.003 1

Bonjour klin89,

En faite, dans ma recherche, je veux que la cellule de la colonne "code lot" ne sois utilisée qu'une seule fois dans la recherche,

Par exemple il peux arriver que les pedigree apparaissent à plusieurs répétitions dans le "fichier de travail". Je ne veux pas que sa reparte du premier code lot..

Je ne sais pas si c'est très claire comme explication..

En tout cas je vais tester cette macro dans la journée, je reviens dans la soirée, pour te donner le résultat. Merci !

Bonjour Scraper,

Le problème est le même sur cette version, les codes lots doublés n'apparaissent pas ..

Merci de votre aide !

Klin89,

Ta macro fonctionne à merveille !

Je te remercie de ton aide ainsi que scraper !!

Merci
Rechercher des sujets similaires à "remplissage automatique colonne suivant regles specifiques"