XL 2010 Insérer une ligne avec un numéro variable

ludOw

XLDnaute Nouveau
Bonjour.

Je ne parviens pas à trouver la réponse dans le forum, ici ou ailleurs sur le net, pourtant je suis certain qu'elle est relativement simple.

J'ai besoin de développer une macro qui insère une ligne copiée à partir d'une feuille (feuille 1 disons) vers un numéro de ligne variable sur une autre feuille (feuille 2 disons).

Faute de pouvoir le faire... j'ai choisi la ligne 150... mais il faudrait en réalité le remplacer par ma variable.

J'ai déjà ma variable dans une cellule, mais je n'arrive pas à l'intégrer à ma macro VBA.

La voici (si ça peut vous aider...) :

Rows("2:2").Select
Selection.Copy
Sheets("PasToucher").Select
Rows("150:150").Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
 

job75

XLDnaute Barbatruc
Bonjour ludOw, bienvenue sur XLD,

Vous n'avez pas beaucoup cherché car copier/insérer une ligne est archi-classique :
VB:
Sub Test()
Dim lig1&, lig2&
lig1 = 2 'à adapter
lig2 = 150 'à adapter
Feuil2.Rows(lig2).Insert
Feuil1.Rows(lig1).Copy Feuil2.Rows(lig2)
End Sub
Apprenez qu'en VBA les Select sont en général inutiles, voire nuisibles.

A+
 

ludOw

XLDnaute Nouveau
Merci pour la réponse.

J'imagine qu'elle me paraîtra évidente d'ici à ce que je me forme sur VBA. (quelques semaines minimum)

Pour l'heure je ne maîtrise que partiellement le code VBA. Je passe donc exclusivement par l'outil "enregistrer" une macro. D'où les "select" apparents.

J'ai beau trifouiller, dans la mesure où pour le moment je ne comprend que très partiellement le langage VBA, je ne parviens pas à adapter la réponse à mon fichier.

Le plus simple pour que je puisse comprendre plus rapidement, est de vous donner les 3 variables.


La feuille 1 s'appelle "Créer une fiche"
--La ligne à copier est la numéro 2

La feuille 2 s'appelle "PasToucher"
--Le numéro de ligne où la sélection doit être collée est variable. (en bas d'un tableau).

J'ai déjà mon numéro variable... inutile d'intégrer dans VBA quelque chose lié au tableau...

La cellule qui indique le numéro de ligne sur laquelle insérer le tout est en"créer une fiche!$A$10"

La macro en question s'appelle "Teeeeeeeeeeeeest". ELle contient d'autres actions qui se situent après l'insertion de ligne...


Mon fichier est trop volumineux pour intégrer le message. Je vous met un lien si besoin.

Voici comment je l'ai adapté, mais ça ne fonctionne pas.

Là encore j'imagine que trouver l'erreur est surement très simple.


Sub Teeeeeeeeeeeeest()
Dim lig1&, lig2&
lig1 = 2 'à adapter
lig2 = Range(a10) 'à adapter
Sheet("PasToucher").Rows(lig2).Insert
Sheet("Créer une fiche").Rows(lig1).Copy Sheet("Créer une fiche").Rows(lig2)
End Sub

https://transfernow.net/11chz461pid8

Merci d'avance.

=D
 
Dernière édition:

job75

XLDnaute Barbatruc
VB:
Sub Teeeeeeeeeeeeest()

Dim lig1&, lig2&

lig1 = 2 'à adapter
lig2 = Sheets("Créer une fiche").Range("A10") 'à adapter
Sheets("PasToucher").Rows(lig2).Insert
Sheets("Créer une fiche").Rows(lig1).Copy Sheets("PasToucher").Rows(lig2)

'---suite du code---

End Sub
 

Discussions similaires