Méthode Range pour selectionner des cellules specifiques

Bonjour,

je suis entrain de créer un bouton pour automatiser l'ajout d'une ligne en copiant collant la dernière ligne.
vu qu'il y a plusieurs cellules et que je ne veuille pas la ligne entière, je voulais faire un copier coller à partir de la cellule B à la cellule AH de la dernière ligne, donc j'ai réussi à le faire mais en faisant un copier coller de chaque cellule à part comme cela
Sub Bouton1156_ajouter_une_ligne()

Dim L As Integer
Dim J As Integer

L = Sheets("Vision globale").Range("G65536").End(xlUp).Row
J = Sheets("Vision globale").Range("G65536").End(xlUp).Row + 1

With Sheets("Vision globale")

Range("A" & L).Select
Selection.Copy
Range("A" & J).Select
ActiveSheet.Paste
.Range("A" & J).Value = .Range("A" & L).Value + "0,01"
Range("AI" & L).Select
Selection.Copy
Range("AI" & J).Select
ActiveSheet.Paste
.Range("AI" & J).Value = .Range("AI" & L).Value + "1"
Range("B" & L).Select
Selection.Copy
Range("B" & J).Select
ActiveSheet.Paste
Range("C" & L).Select
Selection.Copy
Range("C" & J).Select
ActiveSheet.Paste
Range("D" & L).Select
Selection.Copy
Range("D" & J).Select
ActiveSheet.Paste
Range("E" & L).Select
Selection.Copy
Range("E" & J).Select
ActiveSheet.Paste

cela rend l'opération un peu lente. j'aimerai une solution pour pouvoir sélectionner une seule fois de B à AH et faire un seul copier coller. voila le code que j'ai en ce moment et il continue jusqu'à AH, c'est pas terrible ;)
Si quelqu'un à une solution, merci d'avance.

cordialement

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. salut j'ai une solution pour toi tu sélectionne de B a AH sur la feuille puis tu fait bouton droit "Définir un nom" et sur ton code VBA tu met :

    Range("le nom que ta défini" & l).Select
    Selection.Copy
    Range("le nom que ta défini" & J).Select
    ActiveSheet.Paste
    1. salut rr120

      Merci pour ta proposisition, j'ai essayé ça me donne une erreur 1004 (la méthode range de l'objet '_Global' a échoué)
      je ne sais toujours pas d'où provient le problème alors que la syntaxe parait juste.

      Range("Stock_tickets" & L).Select
      Selection.Copy
      Range("Stock_tickets" & J).Select
      ActiveSheet.Paste

      Merci si t'as d'autres propositions, sinon dit moi si chez toi ça fonctionne.

      A+
      1. voila la réponse a ta demande mec, en faite tu as fait les truc a l'envers alors "lol" c'est le range de toute la ligne alors tu refait ton range "Stock_tickets" il doit contenir tout la ligne après tu remplace "LOL" par le nom de ton range et pooofff ca marche

        Dim L As Integer
        Dim J As Integer
        J = Sheets("Vision globale").Range("A65536").End(xlUp).Row + 1
        L = Sheets("Vision globale").Range("A65536").End(xlUp).Row

        With Sheets("Vision globale")
        Range("LOL").Select
        Selection.Copy
        .Range("A" & J).Select
        ActiveSheet.Paste
        .Range("A" & J) = .Range("A" & L) + "0.01"
        .Range("AI" & J) = .Range("AI" & L) + "1"