Ajouter une ligne à un tableau, VBA

  • Initiateur de la discussion Initiateur de la discussion Franckxxx
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Franckxxx

Guest
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! 🙂
 
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 ...
 
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..
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
352
Réponses
4
Affichages
685
Réponses
15
Affichages
604
Réponses
4
Affichages
725
Retour