[Excel] Macro de copie de lignes

Bonjour,

J'ai un souci dans mes macros.
Voici mon but je voudrais que quand je clique sur un bouton, Excel copie et colle les données de la ligne 1 uniquement les valeurs et le format dans la ligne 3 (du fait quand la ligne 1 sera réinitialisée les valeurs de la ligne 3 seront conservées).

Cependant je voudrais que quand je remette des valeurs différentes dans la ligne 1 je souhaiterai avec le bouton faire la même chose que précédent (copie et colle) mais à la suite (donc ligne 4) puis 5,6,7,8,9. A chaque il faut ajouter ou incrémenter une ligne. Je ne sais pas comment faire.

Actuellement il m'écrase les données. Merci d'avance c'est pour le travail.

Cordialement
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. Modérateur
    Salut
    Peux-tu nous mettre une copie de ton code ici? Cela sera plus facile de débugger un code existant que de partir de zéro
    1. C'est juste une macro vu que j'y connait pas grand chose

      Sub Bouton2_QuandClic()
      '
      ' Bouton2_QuandClic Macro
      ' Macro enregistrée le 14/05/2008 par PAU
      '

      '
      Range("A7:BF7").Select
      Selection.Copy
      Range("A10").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
      Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
      SkipBlanks:=False, Transpose:=False
      Range("A11").Select

      End Sub

      Merci d'avance
      1. Modérateur
        Sub Bouton2_QuandClic()
        '
        ' Bouton2_QuandClic Macro
        ' Macro enregistrée le 14/05/2008 par PAU
        '
        
        '
        Range("A7:BF7").Select
        

        Sélectionne la ligne 7 (tu parlais pas de la 1 ?)
        Selection.Copy
        Range("A10").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        

        Colle tout dans la ligne 10
        Range("A11").Select
        
        End Sub 
        

        Puis sélectionne la ligne 11

        Jamais tu ne change la ligne d'arrivée.
        Il te faudrait une boucle du style (j'ai plus la syntaxe exacte en VBA)
        $ligne = 10   (ligne de départ)
        while cell("A".$ligne) is not empty
        $ligne = $ligne+1
        loop
        Range("A" . $ligne).Select
        

        Que tu mets après ton "Selection.Copy"

        Ce ne sont que des pistes, pas du code "tel quel"
        1. Contributeur
          Bonjour

          Sub copierligne()
          Dim derlig As Long
          derlig = Columns(1).Find("", Range("A9")).Row
          Range("A7:BF7").Copy Range("A" & derlig & ":BF" & derlig)
          End Sub