Méthode Range pour selectionner des cellules specifiques

laricci Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
 rr120 -
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

  1. rr120
     
    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
    0
  2. laricci Messages postés 19 Date d'inscription   Statut Membre Dernière intervention  
     
    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+
    0
  3. rr120
     
    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"
    0