Copier une colonne sur deux

Comment copier dans les colonnes A, B, C de la feuille 2 les données contenues dans les colonnes A, C, E de la feuille 1 ?

Par formule, écris ceci en A1 de la feuille 2 puis tire la formule vers la droite (et vers le bas si besoin bien sur)

=DECALER(Feuil2!$A1;0;COLONNE()*2-2)
Ne pas oublier le $ devant le A pour figer la colonne dans la référence initiale, mais ne pas figer le N° de ligne pour qu'il s'adapte quand on tire vers le bas.

 

La ruse tient dans le 3° paramètre de la formule :
colonne() renvoie le numéro de la colonne de la cellule contenant la formule. Par exemple 5 pour la colonne E
Donc colonne()*2-2 renvoie (5*2)-2=8 qui correspond au n° de la colonne H
Donc la formule renvoie la valeur de la cellule qui est située 8 colonnes à droite de la cellule de référence.

Par macro
Tu peux jouer sur le reste de la division par 2 du N° de la colonne:
soit C ce numéro si C Mod 2 =1, autrement dit si le reste de la division de C par deux est 1 alors la colonne est impaire, sinon (C Mod 2 = 0) il est pair.
En fonction de ce que tu veux (copier les colonnes paires ou impaires), tu adaptes la macros ci-dessous.
Tu peux bien sur adapter pour copier une colonne sur 3 ou sur 17.
Tu peux aussi modifier la ligne
C.Copy Worksheets("Feuil4").Cells(1, A) pour choisir où copier tes données.

Sub copiemodulo()
Dim C As Range, A As Long
   For Each C In Worksheets("Feuil1").Range("A1:AV275").Columns 'a adapter bien sur
      If C.Column Mod 2 = 1 Then
        A = A + 1
        C.Copy Worksheets("Feuil4").Cells(1, A)
     End If
   Next
End Sub

Auteur :

Mot clef associé à cette page :