Ajouter une ligne à un tableau, VBA

Franckxxx

XLDnaute Junior
Bonjour à tous,

J'ai développé 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

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

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. L'un d'entre vous connaitrais-t-il une solution à mon problème?

Merci à vous! :)
 

st007

XLDnaute Barbatruc
Re : Ajouter une ligne à un tableau, VBA

Bonjour,

Ce qui me choque,
Rows("k:k").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

row = ligne k ???? k est une colonne
donc comment veux tu insérer une ligne à une colonne sélectionnée ....

Rows("2:2") par exemple ou alors Selection.Insert Shift:=xlRight ou left ...
 

Franckxxx

XLDnaute Junior
Re : Ajouter une ligne à un tableau, VBA

Bonjour st007,

Dans mon esprit, k est une variable désignant l'incrémentation des lignes du tableau TabRef1. Je me tromperais depuis le début?
Lorsque k correspond au cas particulier TabRef1(k, 2) = TabIni1(l, 2), j'aimerais créer une ligne à la suite de la ligne k. D’où la sélection de la ligne k avec Rows("k:k").Select.

Après, je ne suis vraiment pas certain que l'utilisation de ce code (en rouge) dans ce cas précis..
 

Franckxxx

XLDnaute Junior
Re : Ajouter une ligne à un tableau, VBA

J'ai ajouté un exemple 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.

Quelqu'un aurais-t-il déjà rencontré ce problème et saurais-t-il le résoudre?

Merci à vous! :)
 

Pièces jointes

  • Classeur3.xlsm
    16.5 KB · Affichages: 70
  • Classeur3.xlsm
    16.5 KB · Affichages: 60
  • Classeur3.xlsm
    16.5 KB · Affichages: 113

Statistiques des forums

Discussions
311 720
Messages
2 081 886
Membres
101 830
dernier inscrit
sonia poulaert