Ajouter une ligne à un tableau, VBA

Bonjour à tous,

J'ai développé à l'aide d'exemples un code sous cette forme:

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

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)

If TabRef1(k, 1) = TabIni1(l + 1, 1) Then

Rows(k & ":" & k).Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

k = k + 1

l = l + 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

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.

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?

13classeur3.xlsm (16.54 Ko)

Merci à vous!

Bonsoir

Je n'ai pas le même résultat que tu avais prévu

Qui a tort ?

Qui a raison ?

A vérifier

Bonjour Banzai64,

Tout d'abord merci pour ton aide! Effectivement vous avez raison.. :p Une ligne est passé à la trappe lorsque j'ai créé l'exemple manuellement.

J'ai essayé le code sur mon fichier original et tout fonctionne parfaitement

Par contre j'avoue ne pas trop comprendre comment fonctionne la variable Trouve dans ce cas précis.

Bonjour

La variable Trouve = VRAI indique que l'élément du tableau Feuil2 est trouvé dans le tableau Feuil1 donc pas besoin de copier la ligne du tableau Feuil2 dans le futur tableau de la Feuil3

Si Trouve = FAUX on recopie la ligne du tableau Feuil2 dans le futur tableau de la Feuil3

Rechercher des sujets similaires à "ajouter ligne tableau vba"