VBA - copier cellules d'une colonne vers d'autres cellules avec incrémentation

  • Initiateur de la discussion Initiateur de la discussion jackslayter
  • 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 !

J

jackslayter

Guest
Bonjour,
j'ai pu jusqu'à présent utiliser les réponses aux topics pour faire mon classeur mais la je trouve rien sur ce que je veux faire.
j'ai une feuille avec une colonne, dans cette colonne il y a plusieurs cellules à la suite avec un nombre aléatoire de cellules pleines.
Ces cellules de cette colonne je veux les copier sur une autre feuille suivant un schéma (A1 C1 E1 A6 C6 E6 A11 C11 E11 ......) le tout incrémenté ( feuille1 A1 -> Feuille2 A1, feuille1 A2 -> Feuille2 C1, feuille1 A3 -> Feuille2 E1, feuille1 A4 -> Feuille2 A6, ...).

Je suis obligé de passer par une macro car il faut que la copie soit avec la mise en forme de la source.

Avez vous une idée ?

Merci et bonne journée
 
Dernière modification par un modérateur:
Bonjour Jack, bonjour le forum,

Essaie comme ça (à adapter) :

VB:
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim LI As Integer 'déclare la variable LI (LIgne)
Dim I As Integer 'déclare la variable I (Incrément)

Set OS = Worksheets("Feuil1") 'définit l'onglet OS (à adapter à ton cas)
Set OD = Worksheets("Feuil2") 'définit l'onglet OD (à adapter à ton cas)
DL = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet Source
LI = 1 'initialise la variable LI
For I = 1 To DL Step 3 'boucle des lignes 1 à DL par pas de 3
    OS.Cells(I, "A").Copy OD.Cells(LI, "A") 'copy la cellule ligne I colonne A de l'onglet OS et la colle dans la cellule ligne LI colonne A
    OS.Cells(I + 1, "A").Copy OD.Cells(LI, "C") 'copy la cellule ligne I+1 colonne A de l'onglet OS et la colle dans la cellule ligne LI colonne C
    OS.Cells(I + 2, "A").Copy OD.Cells(LI, "E"): LI = LI + 5 'copy la cellule ligne I+2 colonne A de l'onglet OS et la colle dans la cellule ligne LI colonne E, redéfinit la ligne L
Next I 'prochaine ligne de la boucle
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour