Copier lignes en boucle.

  • Initiateur de la discussion Initiateur de la discussion Hulk
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Hulk

XLDnaute Barbatruc
Hello Forum,

J'ai un souci avec des boucles, suis incapable d'y arriver 😱

En gros, je souhaites qu'il copie et colle en boucle, un certain nombre de lignes d'un tableau de la feuil1 à la feuil2.

Plus clair je pense avec le fichier joint ici.

Par avance, merci infiniment pour votre aide les pros !

Cdt, Hulk.
 
Re : Copier lignes en boucle.

Bonjour Hulk, bonjour le forum,

Pas compris pourquoi une boucle si tu veux copier une seule fois... Je te propose le code suivant qui, à chaque clic sur le bouton, va copier le tableau dans l'onglet Feuil2 en dessous su dernier existant :

Code:
Private Sub BtnCopier_Click()
Dim dest As Range 'déclare la variable dest
 
Set dest = Sheets("Feuil2").Range("B65536").End(xlUp).Offset(1, 0) 'définit la variable dest
Range("B2:H22").Copy dest 'copie et colle
End Sub

mais si tu dois le copier plusieurs fois d'un coup alors :
Code:
Private Sub BtnCopier_Click()
Dim dest As Range 'déclare la variable dest
 
For x = 1 To 21 'boucle de 1 à 21
    Set dest = Sheets("Feuil2").Range("B65536").End(xlUp).Offset(1, 0) 'définit la variable dest
    Range("B2:H22").Copy dest 'copie et colle
Next x 'prochain élément de la boucle
End Sub
 
Re : Copier lignes en boucle.

Bonjour,

ci-joint un exemple à tester

Sub test2()
For Each X In Sheets("Feuil2").Range("B65536:H65536")
If Var1 < X.End(xlUp).Row Then Var1 = X.End(xlUp).Row
Next
Var2 = IIf((Var1 - 1) Mod 21 = 0, (Var1 - 1) Mod 21, 21 - ((Var1 - 1) Mod 21))
Sheets("Feuil1").Range("B2:H22").Copy Sheets("Feuil2").Cells(Var1 + Var2 + 1, 2)
End Sub
 

Pièces jointes

Re : Copier lignes en boucle.

Bonjour,

Je ne sais pas si c'est lié au Forum ou à ma connexion mais ça fait le 3 eme ZIP que je n'arrive pas à ouvrir.
Testé sur 2 machines différentes.
Y a t il d'autres personnes dans le meme cas ?

Salut Catrice (... mais me liras-tu ?? difficile sans Messages Privés)
Bref, j'ai ouvert sans difficulté 2 fichiers zippés que tu n'arrivais pas à ouvrir ... à moins qu'ils n'aient été re-déposés depuis ... ça ne doit pas être les fichiers qui sont en cause.

Bien à toi,

Modeste
 
Re : Copier lignes en boucle.

Bonjour à tous et à toutes

Moi non plus je n'arrive pas à ouvrir le dernier .zip

Voir la PJ

A plus
 

Pièces jointes

  • Capturer.JPG
    Capturer.JPG
    26.5 KB · Affichages: 53
  • Capturer.JPG
    Capturer.JPG
    26.5 KB · Affichages: 49
  • Capturer.JPG
    Capturer.JPG
    26.5 KB · Affichages: 53
Re : Copier lignes en boucle.

Hello tout le monde,

Tout d'abord merci à vous tous pour vos réponses !

Je n'ai pas le temps de tester maintenant, mais dès que je le ferais, je vous tiendrais au crt.

Catrice, en ce qui concerne les fichiers liés que tu ne peux pas lire, moi aussi ça m'arrive avec, apparemment, tous les fichiers qui étaient déjà liés avant la mise à jour de ces derniers jours... sauf erreur.

@+, Hulk.
 
Re : Copier lignes en boucle.

Re,

Okey ça joue, avec les versions à Catrice et Robert.

Hbenalia, Impossible de lire ton zip !

Merci à vous tous !

Juste un petit souci Catrice et Robert, avec le Copy, il colle les formules, or il me faudrait surtout les valeurs, puisque dans la feuille copiée il y a des colonnes masquées, qui elles, ne sont pas copiées !

Je m'explique :

Dans la feuil1, chaque dernière cellule de la dernière ligne du tableau, il y a une formule liée à d'autres colonnes masquées de cette même feuille. Une fois la feuil1 copiée, dans la feuil2 de copie, il y a la formule, mais pas le résultat, vu que les colonnes masquées ne sont pas copiées (et si possible je ne souhaite pas les copier).

Ya t-il une solution ?

J'ai essayé de faire avec le PasteSpecial, mais je cale 😀

Une idée ?

Cdt, Hulk.
 
Re : Copier lignes en boucle.

Re,

Pas tout compris, mais essaie ceci :

Sub test2()
For Each X In Sheets("Feuil2").Range("B65536:H65536")
If Var1 < X.End(xlUp).Row Then Var1 = X.End(xlUp).Row
Next
Var2 = IIf((Var1 - 1) Mod 21 = 0, (Var1 - 1) Mod 21, 21 - ((Var1 - 1) Mod 21))
Sheets("Feuil1").Range("B2:H22").Copy
Sheets("Feuil2").Cells(Var1 + Var2 + 1, 2).PasteSpecial xlPasteValues
End Sub

Pour mon information, la formule est dans la 21eme ligne ou dans la ligne sous la derniere cellule remplie ?
 
Re : Copier lignes en boucle.

Merci Modeste pour ta réponse.
Toujours pas possible d'ouvrir les Zip pour moi ...

Tu les ouvres avec quoi ?

re- bonjour Catrice,

J'espère que Hulk ne m'en voudra pas de "squatter" (des fois qu'il nous ferait une petite colère)😱

Mozilla FireFox se charge de les ouvrir pour moi, mais le "(dé)zippeur" Windows les ouvre aussi ... Attention celui de hbenalia ne s'ouvre pas chez moi non plus: j'avais ouvert celui de Hulk et, dans le post suivant:
https://www.excel-downloads.com/threads/comment-selectionner.124217/ ... celui de cstocchetti

@+

Modeste
 
Re : Copier lignes en boucle.

Hello,

Pas de couci Modeste 😀

Catrice, au fait la première version que tu m'as fournis, est mieux car elle prend la mise en forme aussi mais pas la formule.

Dans la version 2, il copie bien les valeurs, mais plus la mise en forme.. au fait, faudrait faire un mélange des deux 😀

Pour ta question, au fait le tableau fait B2:H19 et B20:H21.
Dans B2:H19 il y a des données sans formules, et dans B20:H20 il y a des formules.
Ligne 21 pour l'espace entre chaque tableau.

J'espère que tu me suis 😀

Cdt, Hulk.
 
Re : Copier lignes en boucle.

Re,

Avec le format :

Sub test2()
For Each X In Sheets("Feuil2").Range("B65536:H65536")
If Var1 < X.End(xlUp).Row Then Var1 = X.End(xlUp).Row
Next
Var2 = IIf((Var1 - 1) Mod 21 = 0, (Var1 - 1) Mod 21, 21 - ((Var1 - 1) Mod 21))
Sheets("Feuil1").Range("B2:H22").Copy
Sheets("Feuil2").Cells(Var1 + Var2 + 1, 2).PasteSpecial xlPasteValues
Sheets("Feuil2").Cells(Var1 + Var2 + 1, 2).PasteSpecial xlPasteFormats
End Sub

L'énoncé du début n'est pas tout à fait le meme que le dernier.
Du coup le code suivant doit fontionner :

Sub test()
Sheets("Feuil1").Range("B2:H22").Copy
With Sheets("Feuil2").Range("B65536").End(xlUp).Offset(2, 0)
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
End With
End Sub

Si la ligne de formules est toujours au meme endroit.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
534
Réponses
14
Affichages
932
N
Réponses
6
Affichages
2 K
Navillus
N
C
Réponses
5
Affichages
1 K
Cocoraphsg
C
Retour