VBA: copier les éléments d'une longue liste d'une feuille à l'autre, mais un élément toutes les 3 rangées sur la feuille de destination

Le
Anne DeBlois
Bonjour,

Dans un classeur, il y a deux feuilles. La première a été formatée afin
d'accueillir des données sur des plantes. La seconde contient la liste
exhaustive des plantes. Je dois copier, un à un, chaque élément de la liste
(feuille 2) dans la feuille 1, avec la contrainte suivante: chaque élément
est placé à toutes les 3 rangées. La liste de la feuille 2 contient 3514
éléments!!! Et la feuille 1 a été formatée en conséquence. Il ne reste
qu'à faire la copie. Bien sûr, je ne peux pas faire tout ça à la mitaine.

Donc, dans le but d'automatiser le tout en VBA, je me suis fait une macro
dont le code résultant est le suivant - c'est un début, en fait, j'ai fait
la procédure pour les quelques premiers éléments:

Sub PointDepart()
Sheets("Feuil2").Select
Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:lse, Transpose:lse
Sheets("Feuil2").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:lse, Transpose:lse
Sheets("Feuil2").Select
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A9").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:lse, Transpose:lse

End Sub

--

Je désire faire un [Do While.. Loop ] pour que la commande se répète jusqu'à
ce qu'elle trouve le dernier élément de la liste de la feuille 2, cependant
je ne sais pas trop comment coder des variables qui renverraient aux bonnes
adresses de cellule. Quelqu'un a-t-il une piste à me suggérer?

Merci à l'avance,

A.D.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
anonymousA
Le #3081221
bonjour,

With Sheets("Feuil2")

lastrow = .Range("A65536").End(xlUp).Row

For I = 1 To lastrow
.Cells(I, 1).Copy Sheets("Feuil1").Range("A" & I * 3)
Next

End With

A+


Bonjour,

Dans un classeur, il y a deux feuilles. La première a été formatée afin
d'accueillir des données sur des plantes. La seconde contient la liste
exhaustive des plantes. Je dois copier, un à un, chaque élément de la liste
(feuille 2) dans la feuille 1, avec la contrainte suivante: chaque élément
est placé à toutes les 3 rangées. La liste de la feuille 2 contient 3514
éléments...!!! Et la feuille 1 a été formatée en conséquence. Il ne reste
qu'à faire la copie. Bien sûr, je ne peux pas faire tout ça à la mitaine.

Donc, dans le but d'automatiser le tout en VBA, je me suis fait une macro
dont le code résultant est le suivant - c'est un début, en fait, j'ai fait
la procédure pour les quelques premiers éléments:

Sub PointDepart()
Sheets("Feuil2").Select
Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Sheets("Feuil2").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Sheets("Feuil2").Select
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A9").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse

End Sub

-----------------------

Je désire faire un [Do While.. Loop ] pour que la commande se répète jusqu'à
ce qu'elle trouve le dernier élément de la liste de la feuille 2, cependant
je ne sais pas trop comment coder des variables qui renverraient aux bonnes
adresses de cellule. Quelqu'un a-t-il une piste à me suggérer?

Merci à l'avance,

A.D.





garnote
Le #3081211
Bonjour Anne,

Il doit y avoir une macro plus rapide
mais ça semble correspondre à ton besoin.

Sub Copier()
Application.ScreenUpdating = False
Do Until k = 1
i = i + 1
If IsEmpty(Sheets(2).Cells(i, 1)) Then k = 1
Sheets(2).Cells(i, 1).Copy Sheets(1).Cells(3 * i, 1)
Loop
End Sub

Serge

"Anne DeBlois" de news: %
Bonjour,

Dans un classeur, il y a deux feuilles. La première a été formatée afin
d'accueillir des données sur des plantes. La seconde contient la liste
exhaustive des plantes. Je dois copier, un à un, chaque élément de la
liste (feuille 2) dans la feuille 1, avec la contrainte suivante: chaque
élément est placé à toutes les 3 rangées. La liste de la feuille 2
contient 3514 éléments...!!! Et la feuille 1 a été formatée en
conséquence. Il ne reste qu'à faire la copie. Bien sûr, je ne peux pas
faire tout ça à la mitaine.

Donc, dans le but d'automatiser le tout en VBA, je me suis fait une macro
dont le code résultant est le suivant - c'est un début, en fait, j'ai fait
la procédure pour les quelques premiers éléments:

Sub PointDepart()
Sheets("Feuil2").Select
Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Sheets("Feuil2").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Sheets("Feuil2").Select
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A9").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse

End Sub

-----------------------

Je désire faire un [Do While.. Loop ] pour que la commande se répète
jusqu'à ce qu'elle trouve le dernier élément de la liste de la feuille 2,
cependant je ne sais pas trop comment coder des variables qui renverraient
aux bonnes adresses de cellule. Quelqu'un a-t-il une piste à me suggérer?

Merci à l'avance,

A.D.



Christian.L
Le #3081201
Bonjour Anne

Qu'appelle tu "rangée" ? C'est la ligne.? La colonne?

Donne un exemple d'écriture sur tes 2 feuilles.

C.L.


"Anne DeBlois" de news: %
Bonjour,

Dans un classeur, il y a deux feuilles. La première a été formatée afin
d'accueillir des données sur des plantes. La seconde contient la liste
exhaustive des plantes. Je dois copier, un à un, chaque élément de la
liste (feuille 2) dans la feuille 1, avec la contrainte suivante: chaque
élément est placé à toutes les 3 rangées. La liste de la feuille 2
contient 3514 éléments...!!! Et la feuille 1 a été formatée en
conséquence. Il ne reste qu'à faire la copie. Bien sûr, je ne peux pas
faire tout ça à la mitaine.

Donc, dans le but d'automatiser le tout en VBA, je me suis fait une macro
dont le code résultant est le suivant - c'est un début, en fait, j'ai fait
la procédure pour les quelques premiers éléments:

Sub PointDepart()
Sheets("Feuil2").Select
Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Sheets("Feuil2").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Sheets("Feuil2").Select
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A9").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse

End Sub

-----------------------

Je désire faire un [Do While.. Loop ] pour que la commande se répète
jusqu'à ce qu'elle trouve le dernier élément de la liste de la feuille 2,
cependant je ne sais pas trop comment coder des variables qui renverraient
aux bonnes adresses de cellule. Quelqu'un a-t-il une piste à me suggérer?

Merci à l'avance,

A.D.



Anne DeBlois
Le #3081191
Merci, ç'a fonctionné à merveille!

Anne

"anonymousA" de news:
bonjour,

With Sheets("Feuil2")

lastrow = .Range("A65536").End(xlUp).Row

For I = 1 To lastrow
.Cells(I, 1).Copy Sheets("Feuil1").Range("A" & I * 3)
Next

End With

A+


Bonjour,

Dans un classeur, il y a deux feuilles. La première a été formatée afin
d'accueillir des données sur des plantes. La seconde contient la liste
exhaustive des plantes. Je dois copier, un à un, chaque élément de la
liste
(feuille 2) dans la feuille 1, avec la contrainte suivante: chaque
élément
est placé à toutes les 3 rangées. La liste de la feuille 2 contient 3514
éléments...!!! Et la feuille 1 a été formatée en conséquence. Il ne reste
qu'à faire la copie. Bien sûr, je ne peux pas faire tout ça à la mitaine.

Donc, dans le but d'automatiser le tout en VBA, je me suis fait une macro
dont le code résultant est le suivant - c'est un début, en fait, j'ai
fait
la procédure pour les quelques premiers éléments:

Sub PointDepart()
Sheets("Feuil2").Select
Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Sheets("Feuil2").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
Sheets("Feuil2").Select
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A9").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse

End Sub

-----------------------

Je désire faire un [Do While.. Loop ] pour que la commande se répète
jusqu'à
ce qu'elle trouve le dernier élément de la liste de la feuille 2,
cependant
je ne sais pas trop comment coder des variables qui renverraient aux
bonnes
adresses de cellule. Quelqu'un a-t-il une piste à me suggérer?

Merci à l'avance,

A.D.







Anne DeBlois
Le #3080741
Pour éliminer la confusion: je parlais de la ligne.

Désolée.

A.D.

"Christian.L" news:
Bonjour Anne

Qu'appelle tu "rangée" ? C'est la ligne.? La colonne?

Donne un exemple d'écriture sur tes 2 feuilles.

C.L.


Poster une réponse
Anonyme