Recherche et copie dans une autre ligne

Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   -  
Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour les amis svp j'ai besoin de votre aide

j'ai une macro qui me fais une recherche de donnée et elle me les affecte dans un tableau sauf que dans ce tableau dans la colonne AE pour chaque familles j'ai des fois une information et des fois j'ai deux information

ce que je veux faire moi c'est que si une famille correspond a 2 information dans la colonne AE

exemple " alése abs "correspond a Plat5/ Plat6

je veux que dans mon tableau je crée une ligne qui correspoand a Plat5 et une ligne qui correspond a Plat6

je sais pas comment je peux faire ca ?

voila une image du tableau et un lien pour récupérer le fichier car il est trop volumineux (voir les modules 3 / 4 ET 5 )
https://www.cjoint.com/c/FHblOE3CY5h


merciii les amis

1 réponse

  1. Barahaoua Messages postés 89 Date d'inscription   Statut Membre Dernière intervention  
     
    voila la partis du code qu'il faut modifier pour pouvoir revenir a la ligne si j'ai 2 information dans la colonne AE

    mais je sais pas qu'est ce que il faux écrire malheureusement

    voila la macro svp

    Sub essais()

    Dim Dico As New Dictionary
    Dim x As Integer
    Dim i As Integer
    Application.ScreenUpdating = False

    With Sheets("Qtité Famille")

    For x = 6 To Range("A" & Rows.Count).End(xlUp).Row 'De la ligne 6 a la dernière avec des données
    For i = 5 To 10 'De la colonne E à la colonne J
    If Not Dico.Exists(.Cells(x, 1).Value) And .Cells(x, i) = True Then 'Si la cellule est vrai et que ca n'existe pas dans le dico
    Dico.Add .Cells(x, 1).Value, .Cells(5, i).Value 'récupère les valeurs
    'Dico.Item(.Cells(x, 1).Value) = Dico.Item(.Cells(x, 1).Value)
    ElseIf Dico.Exists(.Cells(x, 1).Value) And .Cells(x, i) = True Then 'si la cellule est vrai et que ca existe déjà dans le dico
    Dico.Item(.Cells(x, 1).Value) = Dico.Item(.Cells(x, 1).Value) & " / " & .Cells(5, i).Value 'récupère les anciennes et nouvelles correspondances
    End If

    Next i 'colonne suivante
    Next x 'ligne suivante

    For x = 6 To Range("X" & Rows.Count).End(xlUp).Row 'De la ligne 6 a la dernière avec des données
    On Error Resume Next 'si erreur ligne suivante
    .Range("AE" & x).Value = Dico(.Range("X" & x).Value) 'Donne les correspondances
    Next x 'ligne suivante

    End With
    Application.ScreenUpdating = True

    End Sub
    0