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

Résolu/Fermé
Benny6422 Messages postés 5 Date d'inscription samedi 18 février 2017 Statut Membre Dernière intervention 18 février 2017 - 18 févr. 2017 à 15:01
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 19 févr. 2017 à 09:00
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!!
A voir également:

2 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
18 févr. 2017 à 15:52
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
Benny6422 Messages postés 5 Date d'inscription samedi 18 février 2017 Statut Membre Dernière intervention 18 février 2017
18 févr. 2017 à 17:09
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
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
18 févr. 2017 à 18:13
.Paste Destination:=.Range("A1").Offset(Cpt-1, 0)

Cdlmnt
0
Benny6422 Messages postés 5 Date d'inscription samedi 18 février 2017 Statut Membre Dernière intervention 18 février 2017 > ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024
18 févr. 2017 à 21:34
merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
18 févr. 2017 à 15:58
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
Benny6422 Messages postés 5 Date d'inscription samedi 18 février 2017 Statut Membre Dernière intervention 18 février 2017
18 févr. 2017 à 17:55
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Benny6422 Messages postés 5 Date d'inscription samedi 18 février 2017 Statut Membre Dernière intervention 18 février 2017
18 févr. 2017 à 20:30
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
Benny6422 Messages postés 5 Date d'inscription samedi 18 février 2017 Statut Membre Dernière intervention 18 février 2017 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
18 févr. 2017 à 21:43
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Benny6422 Messages postés 5 Date d'inscription samedi 18 février 2017 Statut Membre Dernière intervention 18 février 2017
19 févr. 2017 à 09:00
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