Récupérer des lignes d'un tableau pour les insérer dans un autre tableau

Bonjour à tous,

Je suis assez novice dans la programmation VBA et donc je bloque pour la manipulation que je veux faire et demande votre aide.

J'ai un tableau dans la feuil1 "MATRICE FORMATION" qui est alimenter par un formulaire. jusque là Nickel.

J'ai un autre tableau dans la feuil2"New formation" où je choisi la formation (venant de la "MATRICE FORMATION") et je choisi le personnel qui doit avoir la formation. Jusque là Nickel.

J'ai un tableau de suivi des formations (feuil3) alimenter avec le tableau New formation et c'est la que je coince car :

Dans le tableau feuil2, le nombre de ligne varie selon que la formation doit être donnée a une ou plusieurs personnes. En gros je dois copier entre 1 ligne et 14 lignes. dans la plage C6:O19 et ce sont ces ligne la que je dois mettre dans le tableau Feuil3.

et je voudrais l'automatiser.

Pour info, les 3 tableaux sont identiques au niveau des colonnes.

J'ai bien essayer plus truc :

Sub introduction()

Sheets("suivi").Select
    Rows("5:5").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

 feuil2.Range("C6:019").Select 'le problème c'est que ici je vais une fois copier de "C6:03" et demain de "C6:O15") ainsi de suite...
 Selection.Copy
 feuil1.Range("B3").Select
 selection.Paste

End Sub

La première partie où j'insère fonctionne très bien, mais pas le reste. rien ne s'inscrit.

La solution est peut-être de faire une écriture directement dans les deux tableau en venant du formulaire.

Merci d'avance pour votre aide.

Steph.

Bonjour Stef5031 et

La référence d'une cellule se compose forcément d'une à 3 lettres et d'un nombre

Donc

Range("C6:019")

N'est pas possible

Quelque chose comme ceci, devrait être mieux

Sub introduction()
 Sheets("suivi").Rows("5:5").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
 ' Copier les cellules à partir de A5 dans la feuille SUIVI
 feuil2.Range("C6:O19").Copy Destination:=Sheets("suivi").Range("A5")
End Sub

Je remplacerais "feuil2" par Sheets("NomVéritableDeLaFeuille")

A+

Merci Bruno,
Je vais essayer ta formule.

Re,

Ce n'est pas une formule, mais du code

A+

Bonsoir,

J'ai incorporer le code de BrunoM45.

Effectivement ça marche, mais au lieu de l'intégrer a la suite des autres lignes, ca remplace (efface) les lignes existantes.

On est pas très loin du but...

Voici le nouveau code adapté

Feuille Test1 = la feuille avec les valeurs a retranscrire

Feuille Test2 = La feuille dans laquelle on copie les cellules

Sheets("Test2").Select
Rows("6:6").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

' Copier les cellules à partir de C6 dans la feuille SUIVI
Feuil5.Range("C5:H10").Copy Destination:=Sheets("Test2").Range("C6")

End Sub

bonjour, Stef5031,

comme ceci ?

Set c = feuil5.Range("C5:H10") 'source
Sheets("Test2").Rows("6:6").Resize(c.Rows.Count).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
c.Copy Destination:=Sheets("Test2").Range("C6")

Merci à tous pour votre aide ca fonctionne.

Rechercher des sujets similaires à "recuperer lignes tableau inserer"