Copier des valeurs à la 1ère ligne avec une macro

Résolu
Benny6422 Messages postés 5 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis un nouveau membre après avoir découvert CCM....génial!
J'ai créé une macro mais je ne suis pas capable d'écrire à la première ligne mes valeurs..
Voici ma macro:

Sub copier_coller_xfois()
Dim x As Integer
Dim Cpt As Integer
With Sheets("FEUIL1")
x = .Range("D1").Value
.Range("A1:C1").Copy
End With
With Sheets("Feuil2")
For Cpt = 1 To x
.PasteDestination:=.Range("A1").Offset(Cpt, 0)
Next Cpt
End With
End Sub
Merci!!

2 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Essaies comme ceci
    Sub copier_coller_xfois()
    Dim x As Integer
    Dim Cpt As Integer
    With Sheets("FEUIL1")
      x = .Range("D1").Value
      .Range("A1:C1").Copy
    End With
    Sheets("Feuil2").Activate
    With ActiveSheet
      For Cpt = 1 To x
        .Paste Destination:=.Range("A1").Offset(Cpt, 0)
      Next Cpt
    End With
    End Sub

    Cdlmnt
    0
    1. Benny6422 Messages postés 5 Statut Membre
       
      Merci de me répondre et d'essayer de trouver la solution mais je me retrouve encore avec le même problème soit que la macro ne veut pas inscrire les données à partir de la cellule A1 mais commence plutôt à A2
      Merci!
      0
    2. ccm81 Messages postés 11033 Statut Membre 2 434
       
      .Paste Destination:=.Range("A1").Offset(Cpt-1, 0)

      Cdlmnt
      0
      1. Benny6422 Messages postés 5 Statut Membre > ccm81 Messages postés 11033 Statut Membre
         
        merci
        0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a vous deux,

    Sub copier_coller_xfois()
        With Worksheets("feuil1")
            'resize(valeur de D1,nombre de colonnes)=nombre de fois
            'deux application.transpose pour avoir les valeurs dans le bon ordre
            Sheets("Feuil2").Range("A1").Resize(.Range("D1").Value, 3) = Application.Transpose(Application.Transpose(.Range("A1:C1")))
        End With
    End Sub
    
    0
    1. Benny6422 Messages postés 5 Statut Membre
       
      Bonjour,
      merci ça fonctionne très bien. Ma première valeur de D1 est 4. Donc la macro copie 4 fois la même ligne.. super! mais là je voudrais ajouter une autre ligne à copier ex. 5 fois à la suite de mes 4 premières lignes. Ça marche à moitié car j'ai perdu une des 4 premières lignes déjà inscrites... voici la modification que j'ai apportée suite à votre suggestion:

      Sub copier_coller_xfois()

      With Worksheets("feuil1")
      'resize(valeur de D1,nombre de colonnes)=nombre de fois
      'deux application.transpose pour avoir les valeurs dans le bon ordre
      Sheets("Feuil2").Range("A1").Resize(.Range("D1").Value, 3) = Application.Transpose(Application.Transpose(.Range("A1:C1")))
      Sheets("Feuil2").Range("A65536").End(xlUp).Resize(.Range("D2").Value, 3) = Application.Transpose(Application.Transpose(.Range("A2:C2")))
      End With
      End Sub

      Merci!
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Benny6422 Messages postés 5 Statut Membre
         
        Re,

        premiere copie en A2 et la deuxieme a la suite, deux possibiltes

        Sub copier_coller_xfois()
            With Worksheets("feuil1")
                'resize(valeur de D1,nombre de colonnes)=nombre de fois
                'deux application.transpose pour avoir les valeurs dans le bon ordre
                'cellule de depart A2
                Sheets("Feuil2").Range("A2").Resize(.Range("D1").Value, 3) = Application.Transpose(Application.Transpose(.Range("A1:C1")))
                'Sheets("Feuil2").Range("A" & Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row + 1).Resize(.Range("D2").Value, 3) = Application.Transpose(Application.Transpose(.Range("A2:C2")))
                'ou
                Sheets("Feuil2").Range("A" & .Range("D1") + 2).Resize(.Range("D2").Value, 3) = Application.Transpose(Application.Transpose(.Range("A2:C2")))
            End With
        End Sub
        0
      2. Benny6422 Messages postés 5 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Merci beaucoup,
        Ça fonctionne très bien ... j'ai régénéré un tableau de 4 lignes différentes avec des valeurs précises et c'est super!!!!!!

        Autre petite question.... dans un tableau excel, est-ce qu'il y a une commande pour éliminer une ligne n'ayant aucunes valeurs sur plusieurs colonnes ou il faut passer par une macro... ex..

        aaaaaa ffffff 786 ghj
        000000 000 000 000
        ddddd 4er4 frrt bgtr

        Or la deuxième ligne est à éliminer...
        Merci pour ton précieux temps..
        0
      3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Benny6422 Messages postés 5 Statut Membre
         
        Bonjour,

        éliminer une ligne n'ayant aucunes valeurs
        Si c'était des cellules vides, un tri irait, mais autrement VBA.
        Le tableau est celui dont vous copiez les lignes?
        0