Bonjour à tous,
J'ai développé à l'aide d'exemples un code sous cette forme:
Il s'agit d'une simple comparaison et import de données d'une feuille à une autre, le point particulier reviens à ajouter une ligne lorsque la donnée de référence est présente en de multiples versions dans la feuille de référence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 DerLig1 = Worksheets("Livraison à venir").Range("A" & Rows.Count).End(xlUp).Row DerLig2 = Worksheets("Matrice F-DOC").Range("A" & Rows.Count).End(xlUp).Row TabIni1 = Worksheets("Livraison à venir").Range("A3:K" & DerLig1) TabRef1 = Worksheets("Matrice F-DOC").Range("A3:K" & DerLig2) For k = LBound(TabRef1) To UBound(TabRef1) For l = LBound(TabIni1) To UBound(TabIni1) If TabRef1(k, 1) = TabIni1(l, 1) Then If TabRef1(k, 2) = TabIni1(l, 2) Then Rows("k:k").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove k = k + 1 TabRef1(k, 1) = TabRef1(k - 1, 1) End If TabIni1(l, 2) = TabRef1(k, 2) TabIni1(l, 3) = TabRef1(k, 3) TabIni1(l, 4) = TabRef1(k, 4) TabIni1(l, 5) = TabRef1(k, 5) TabIni1(l, 6) = TabRef1(k, 6) TabIni1(l, 7) = TabRef1(k, 7) TabIni1(l, 8) = TabRef1(k, 8) Exit For End If Next Next Worksheets("Livraison à venir").Range("A3").Resize(UBound(TabIni1, 1), UBound(TabIni1, 2)) = TabIni1
Cependant, la partie rouge ne fonctionne pas (je m'y attendais un peut en même temps..), elle correspond au saut de ligne que je n'arrive pas a traiter sous cette forme de code.
J'ai ajouté un exemple remanié pour illustrer mon problème.
Concrètement, j'aimerais importer des données de la Feuil1 vers la Feuil2 pour obtenir le résultat en Feuil3.
Cependant, je bloque sur le cas particulier des documents multiples ou j'aimerais rajouter des lignes à mon fichier selon le nombre de version de ce document.
L'un d'entre vous connaitrais-t-il une solution à mon problème?
Classeur3.xlsm
Merci à vous!![]()
Partager