Macro pour copier coller une plage de cellule
Bonjour,
Je suis pas vraiment rompu au code VBA donc j'ai fait ce que j'ai pu avec ce que j'ai trouvé sur le forum et l'enregistreur.
Je cherche à pouvoir insérer une ligne à un endroit précis dans mon tableur. Les lignes son numérotée sur la feuille et correspondent au numéro de ligne +22.
Ensuite, je souhaite coller une plage de cellules type qui se trouve en première ligne de la feuille pour l'insérer à l'emplacement des cellules insérées. Pour finir, je copie la dernière cellule de cette ligne sur toutes la hauteur de la colonne pour que le résultat de cette cellule tienne comptes de celle insérées.
Le code que j'ai marche pas trop mal sauf que si les cellules b1 et c1 sont collée à l'dentique, la suite des cellules ne reprends pas les formules des cellules de base.
C'est pourquoi je me tourne vers les pros de ce site... Je suis sur que l'un d'entre vous aura une réponse à mon problème, enfin, je l'espère
Je sais aussi à force d'avoir chercher sur le forum que mon code n'est pas des plus propre mais je me suis heurté à plein d'erreur en essayant de faire mieux que j'ai un peu abandonné
Donc si une âme charitable passait quelques instants à m'aider, je lui en saurai super reconnaissant !
Dim IPinsert As Long
IPinsert = InputBox("Insertion de cellules à la ligne N° ?", "Calculation") + 22
Application.Goto (ActiveWorkbook.Sheets("Calcul").Range("B" & IPinsert & ":J" & IPinsert))
Selection.Insert Shift:=xlDown
Range("B1:J1").Select
Selection.Copy
Application.Goto (ActiveWorkbook.Sheets("Calcul").Range("B" & IPinsert & ":J" & IPinsert))
Selection.past
Range("J1").Select
Application.CutCopyMode = False
Selection.Copy
Range("J23:J222").Select
ActiveSheet.Paste
Bonjour,
Mets tes données sous forme de tableau pour commencer.
Les formules seront reproduites à chaque insertion de ligne.
Ensuite, tu peux lancer ta procédure à partir de la sélection d'une cellule...
Il serait judicieux de joindre un petit fichier à ta demande.
Cdlt.
Merci jean-Eric de ta réponse si rapide.
Voici le fichier sur lequel je travail...
C'est sûrement pas du grand art donc je te remercie de ton indulgence
Edit : J'en suis arrivé à ce qui est dessous, je ne sais pas si c'est beau mais ça fonctionne comme je le souhaite...
Dim IPinsert As Long
IPinsert = InputBox("Insertion de cellules à la ligne N° ?", "Calculation") + 22
Application.Goto (ActiveWorkbook.Sheets("Calcul").Range("B" & IPinsert & ":J" & IPinsert))
Selection.Insert Shift:=xlDown
Range("B1:J1").Select
Application.CutCopyMode = False
Selection.Copy
Range("B" & IPinsert & ":J" & IPinsert).Select
ActiveSheet.Paste
Range("J1").Select
Application.CutCopyMode = False
Selection.Copy
Range("J23:J222").Select
ActiveSheet.Paste
Merci pour ton aide !