Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 réponses
Avatar
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:=False, Transpose:=False
Sheets("Feuil2").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Feuil2").Select
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil1").Select
Range("A9").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

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.

5 réponses

Avatar
anonymousA
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.





Avatar
garnote
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" a écrit dans le message
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.



Avatar
Christian.L
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" a écrit dans le message
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.



Avatar
Anne DeBlois
Merci, ç'a fonctionné à merveille!

Anne

"anonymousA" a écrit dans le message
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.







Avatar
Anne DeBlois
Pour éliminer la confusion: je parlais de la ligne.

Désolée.

A.D.

"Christian.L" a écrit dans le message de
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.