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 !

Rechercher des sujets similaires à "macro copier coller plage"