OVH Cloud OVH Cloud

Macro copie

6 réponses
Avatar
Booba
Bonjour a tous,
pardonnez mon ignorance en VBA mais j'y travaille....
Bon j'ai un petit soucis,
je dois dans un classeur excel, lire une cellule et si ca valeur est de 2,
je dois recopier la ligne 2 fois sur une autre feuille, si le nombre est 3
je dois la recopier 3 fois....
Donc mon soucis, comment fait on pour copier x fois une meme ligne?
Pour le moment je ne sais copier qu'en un exemplaire.
Merci d'avance pour l'aide que vus pourriez m'apporter.
Cordialement.
@lesc

6 réponses

Avatar
lydya
Bonjour,

Par exemple, pour copier la ligne de A1 de la feuille active et la coller x
fois (où x est le nombre en A1) sur la deuxième feuille du classeur à partir
de A1:

Sub CopieLignes()
Dim i As Long
If Not IsNumeric(Range("A1")) Then Exit Sub
i = Int(Range("A1").Value)
Range("A1").EntireRow.Copy Destination:=Sheets(2).Range("A1:A" &
i).EntireRow
End Sub

Lydya

----------
"Booba" a écrit dans le message de
news:eyQc$
Bonjour a tous,
pardonnez mon ignorance en VBA mais j'y travaille....
Bon j'ai un petit soucis,
je dois dans un classeur excel, lire une cellule et si ca valeur est de 2,
je dois recopier la ligne 2 fois sur une autre feuille, si le nombre est 3
je dois la recopier 3 fois....
Donc mon soucis, comment fait on pour copier x fois une meme ligne?
Pour le moment je ne sais copier qu'en un exemplaire.
Merci d'avance pour l'aide que vus pourriez m'apporter.
Cordialement.
@lesc





Avatar
lydya
N'hésite pas à poster ta procédure si tu veux qu'on regarde ce qui bloque.

Bon courage

Lydya


"Booba" a écrit dans le message de
news:
Merci beacoup pour la reponse, c'est passé une fois et depuis "erreur
d'execution 9" mais ca va beaucoup m'aider.
Cordialement.
@lesc
"lydya" a écrit dans le message de news:
#Rs6T#
Bonjour,

Par exemple, pour copier la ligne de A1 de la feuille active et la
coller


x
fois (où x est le nombre en A1) sur la deuxième feuille du classeur à
partir

de A1:

Sub CopieLignes()
Dim i As Long
If Not IsNumeric(Range("A1")) Then Exit Sub
i = Int(Range("A1").Value)
Range("A1").EntireRow.Copy Destination:=Sheets(2).Range("A1:A" &
i).EntireRow
End Sub

Lydya

----------
"Booba" a écrit dans le message de
news:eyQc$
Bonjour a tous,
pardonnez mon ignorance en VBA mais j'y travaille....
Bon j'ai un petit soucis,
je dois dans un classeur excel, lire une cellule et si ca valeur est
de



2,
je dois recopier la ligne 2 fois sur une autre feuille, si le nombre
est



3
je dois la recopier 3 fois....
Donc mon soucis, comment fait on pour copier x fois une meme ligne?
Pour le moment je ne sais copier qu'en un exemplaire.
Merci d'avance pour l'aide que vus pourriez m'apporter.
Cordialement.
@lesc













Avatar
Booba
Merci beacoup pour la reponse, c'est passé une fois et depuis "erreur
d'execution 9" mais ca va beaucoup m'aider.
Cordialement.
@lesc
"lydya" a écrit dans le message de news:
#Rs6T#
Bonjour,

Par exemple, pour copier la ligne de A1 de la feuille active et la coller
x

fois (où x est le nombre en A1) sur la deuxième feuille du classeur à
partir

de A1:

Sub CopieLignes()
Dim i As Long
If Not IsNumeric(Range("A1")) Then Exit Sub
i = Int(Range("A1").Value)
Range("A1").EntireRow.Copy Destination:=Sheets(2).Range("A1:A" &
i).EntireRow
End Sub

Lydya

----------
"Booba" a écrit dans le message de
news:eyQc$
Bonjour a tous,
pardonnez mon ignorance en VBA mais j'y travaille....
Bon j'ai un petit soucis,
je dois dans un classeur excel, lire une cellule et si ca valeur est de
2,


je dois recopier la ligne 2 fois sur une autre feuille, si le nombre est
3


je dois la recopier 3 fois....
Donc mon soucis, comment fait on pour copier x fois une meme ligne?
Pour le moment je ne sais copier qu'en un exemplaire.
Merci d'avance pour l'aide que vus pourriez m'apporter.
Cordialement.
@lesc









Avatar
Booba
Merci de ton aide,
en fait j'ai une feuille excel avec 1000lignes environ,
dans ces 1000 lignes j'ai une colonne (colonne E ) avec des caracteres
numerique compris entre 1 et 10 (j'appellerai ce chiffre Y).
Dans une autre feuille je dois copier Y fois cette ligne (toutesd les lignes
doivent etre copié en fonction de leur Y) les unes a la suite des autres.
J'espere avoir ete plus ou moins clair...
Je cherche je cherche, merci de m'apporter un coup de main si jamais c'est
possible....
Bien cordialement.
@lesc
"lydya" a écrit dans le message de news:

N'hésite pas à poster ta procédure si tu veux qu'on regarde ce qui bloque.

Bon courage

Lydya


"Booba" a écrit dans le message de
news:
Merci beacoup pour la reponse, c'est passé une fois et depuis "erreur
d'execution 9" mais ca va beaucoup m'aider.
Cordialement.
@lesc
"lydya" a écrit dans le message de
news:


#Rs6T#
Bonjour,

Par exemple, pour copier la ligne de A1 de la feuille active et la
coller


x
fois (où x est le nombre en A1) sur la deuxième feuille du classeur à
partir

de A1:

Sub CopieLignes()
Dim i As Long
If Not IsNumeric(Range("A1")) Then Exit Sub
i = Int(Range("A1").Value)
Range("A1").EntireRow.Copy Destination:=Sheets(2).Range("A1:A" &
i).EntireRow
End Sub

Lydya

----------
"Booba" a écrit dans le message de
news:eyQc$
Bonjour a tous,
pardonnez mon ignorance en VBA mais j'y travaille....
Bon j'ai un petit soucis,
je dois dans un classeur excel, lire une cellule et si ca valeur est
de



2,
je dois recopier la ligne 2 fois sur une autre feuille, si le nombre
est



3
je dois la recopier 3 fois....
Donc mon soucis, comment fait on pour copier x fois une meme ligne?
Pour le moment je ne sais copier qu'en un exemplaire.
Merci d'avance pour l'aide que vus pourriez m'apporter.
Cordialement.
@lesc

















Avatar
lydya
Bonsoir,

Les lignes sont copiées de la première feuille à la deuxième feuille du
classeur.
Si le traitement doit commencer à partir de la ligne 2 de la première
feuille (si tu as une ligne de titres par exemple), modifie la boucle for i
= 2 to ...
--
Sub CopieLignesV2()
Dim NbLignes1 As Long
Dim NbLignes2 As Long
Dim i As Long
Dim y As Integer
With Sheets(1)
NbLignes1 = .Range("E65536").End(xlUp).Row
For i = 1 To NbLignes1
NbLignes2 = Sheets(2).Range("A65536").End(xlUp).Row
y = .Range("E" & i).Value
.Range("E" & i).EntireRow.Copy _
Sheets(2).Range("A" & NbLignes2 + 1 & ": A" & NbLignes2 + y).EntireRow
Next i
End With
End Sub
--
ça te va?

A bientôt.

Lydya


-----------
"Booba" a écrit dans le message de
news:u%23$
Merci de ton aide,
en fait j'ai une feuille excel avec 1000lignes environ,
dans ces 1000 lignes j'ai une colonne (colonne E ) avec des caracteres
numerique compris entre 1 et 10 (j'appellerai ce chiffre Y).
Dans une autre feuille je dois copier Y fois cette ligne (toutesd les
lignes

doivent etre copié en fonction de leur Y) les unes a la suite des autres.
J'espere avoir ete plus ou moins clair...
Je cherche je cherche, merci de m'apporter un coup de main si jamais c'est
possible....
Bien cordialement.
@lesc
"lydya" a écrit dans le message de news:

N'hésite pas à poster ta procédure si tu veux qu'on regarde ce qui
bloque.



Bon courage

Lydya


"Booba" a écrit dans le message de
news:
Merci beacoup pour la reponse, c'est passé une fois et depuis "erreur
d'execution 9" mais ca va beaucoup m'aider.
Cordialement.
@lesc
"lydya" a écrit dans le message de
news:


#Rs6T#
Bonjour,

Par exemple, pour copier la ligne de A1 de la feuille active et la
coller


x
fois (où x est le nombre en A1) sur la deuxième feuille du classeur
à




partir
de A1:

Sub CopieLignes()
Dim i As Long
If Not IsNumeric(Range("A1")) Then Exit Sub
i = Int(Range("A1").Value)
Range("A1").EntireRow.Copy Destination:=Sheets(2).Range("A1:A" &
i).EntireRow
End Sub

Lydya

----------
"Booba" a écrit dans le message de
news:eyQc$
Bonjour a tous,
pardonnez mon ignorance en VBA mais j'y travaille....
Bon j'ai un petit soucis,
je dois dans un classeur excel, lire une cellule et si ca valeur
est





de
2,
je dois recopier la ligne 2 fois sur une autre feuille, si le
nombre





est
3
je dois la recopier 3 fois....
Donc mon soucis, comment fait on pour copier x fois une meme
ligne?





Pour le moment je ne sais copier qu'en un exemplaire.
Merci d'avance pour l'aide que vus pourriez m'apporter.
Cordialement.
@lesc





















Avatar
Booba
Merci beaucoup pour le coup de main (enorme :)).
Je teste ca et te tiens au courant.
Cordialement.
@lesc
"lydya" a écrit dans le message de news:
#
Bonsoir,

Les lignes sont copiées de la première feuille à la deuxième feuille du
classeur.
Si le traitement doit commencer à partir de la ligne 2 de la première
feuille (si tu as une ligne de titres par exemple), modifie la boucle for
i

= 2 to ...
--
Sub CopieLignesV2()
Dim NbLignes1 As Long
Dim NbLignes2 As Long
Dim i As Long
Dim y As Integer
With Sheets(1)
NbLignes1 = .Range("E65536").End(xlUp).Row
For i = 1 To NbLignes1
NbLignes2 = Sheets(2).Range("A65536").End(xlUp).Row
y = .Range("E" & i).Value
.Range("E" & i).EntireRow.Copy _
Sheets(2).Range("A" & NbLignes2 + 1 & ": A" & NbLignes2 + y).EntireRow
Next i
End With
End Sub
--
ça te va?

A bientôt.

Lydya


-----------
"Booba" a écrit dans le message de
news:u%23$
Merci de ton aide,
en fait j'ai une feuille excel avec 1000lignes environ,
dans ces 1000 lignes j'ai une colonne (colonne E ) avec des caracteres
numerique compris entre 1 et 10 (j'appellerai ce chiffre Y).
Dans une autre feuille je dois copier Y fois cette ligne (toutesd les
lignes

doivent etre copié en fonction de leur Y) les unes a la suite des
autres.


J'espere avoir ete plus ou moins clair...
Je cherche je cherche, merci de m'apporter un coup de main si jamais
c'est


possible....
Bien cordialement.
@lesc
"lydya" a écrit dans le message de
news:



N'hésite pas à poster ta procédure si tu veux qu'on regarde ce qui
bloque.



Bon courage

Lydya


"Booba" a écrit dans le message de
news:
Merci beacoup pour la reponse, c'est passé une fois et depuis
"erreur




d'execution 9" mais ca va beaucoup m'aider.
Cordialement.
@lesc
"lydya" a écrit dans le message de
news:


#Rs6T#
Bonjour,

Par exemple, pour copier la ligne de A1 de la feuille active et la
coller


x
fois (où x est le nombre en A1) sur la deuxième feuille du
classeur





à
partir
de A1:

Sub CopieLignes()
Dim i As Long
If Not IsNumeric(Range("A1")) Then Exit Sub
i = Int(Range("A1").Value)
Range("A1").EntireRow.Copy Destination:=Sheets(2).Range("A1:A" &
i).EntireRow
End Sub

Lydya

----------
"Booba" a écrit dans le message de
news:eyQc$
Bonjour a tous,
pardonnez mon ignorance en VBA mais j'y travaille....
Bon j'ai un petit soucis,
je dois dans un classeur excel, lire une cellule et si ca valeur
est





de
2,
je dois recopier la ligne 2 fois sur une autre feuille, si le
nombre





est
3
je dois la recopier 3 fois....
Donc mon soucis, comment fait on pour copier x fois une meme
ligne?





Pour le moment je ne sais copier qu'en un exemplaire.
Merci d'avance pour l'aide que vus pourriez m'apporter.
Cordialement.
@lesc