Copier des valeurs à la 1ère ligne avec une macro [Résolu/Fermé]

Signaler
Messages postés
5
Date d'inscription
samedi 18 février 2017
Statut
Membre
Dernière intervention
18 février 2017
-
Messages postés
15378
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 octobre 2020
-
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

Messages postés
9579
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 octobre 2020
1 926
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
Messages postés
5
Date d'inscription
samedi 18 février 2017
Statut
Membre
Dernière intervention
18 février 2017

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!
Messages postés
9579
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 octobre 2020
1 926
.Paste Destination:=.Range("A1").Offset(Cpt-1, 0)

Cdlmnt
Messages postés
5
Date d'inscription
samedi 18 février 2017
Statut
Membre
Dernière intervention
18 février 2017
>
Messages postés
9579
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 octobre 2020

merci
Messages postés
15378
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 octobre 2020
1 377
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
Messages postés
5
Date d'inscription
samedi 18 février 2017
Statut
Membre
Dernière intervention
18 février 2017

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!
Messages postés
15378
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 octobre 2020
1 377 >
Messages postés
5
Date d'inscription
samedi 18 février 2017
Statut
Membre
Dernière intervention
18 février 2017

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
Messages postés
5
Date d'inscription
samedi 18 février 2017
Statut
Membre
Dernière intervention
18 février 2017
>
Messages postés
15378
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 octobre 2020

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..
Messages postés
15378
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 octobre 2020
1 377 >
Messages postés
5
Date d'inscription
samedi 18 février 2017
Statut
Membre
Dernière intervention
18 février 2017

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?