Recherche et copie dans une autre ligne

Fermé
Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016 - 1 août 2016 à 13:42
Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016 - 1 août 2016 à 13:54
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

Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016
1 août 2016 à 13:54
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