Copie en VBA d'une colonne sur deux

jose.carreira

XLDnaute Junior
Bonjour

Comment avec VBA pourrais-je copier (sur un autre onglet) une colonne sur deux, à partir de la cellule active jusqu’à la dernière ligne active et jusqu’à la dernière colonne active

La cellule active étant une cellule variable, ainsi que le nombre de colonnes et de lignes.

Pour trouver ma cellule variable j’utilise :
num_col = ActiveCell.Column ' N° de la cellule active
num_col = Split(Columns(num_col).Address(ColumnAbsolute:=False), ":")(1) 'letre de la cellule active
macellule = num_col & ligne

Pour trouver ma dernière ligne active j’utilise :
derligne = Range("B2000").End(xlUp).Row 'trouve la derniére ligne de la colonne B

et pour trouver ma dernière colonne active j’utilise :
num_col = Range("XFD2").End(xlToLeft).Column + 1 ' Premiére ceulle libre de de ligne 2
num_col = Split(Columns(num_col).Address(ColumnAbsolute:=False), ":")(1) 'letre de la premiére ceulle libre de de ligne 2


Poudriez-vous m’aider s’il vous plaît.
Merci d'avance.
 

Paf

XLDnaute Barbatruc
Re : Copie en VBA d'une colonne sur deux

Bonjour,

une solution possible:
Code:
Sub CopyColonne()
 Dim DerCol As Long, ColDep As Long, NumCol As Long, DerLig As Long, NouvCol As Long
 Dim WS1 As Worksheet, WS2 As Worksheet

 Set WS1 = Worksheets("Feuil1")
 Set WS2 = Worksheets("Feuil2")

 ColDep = ActiveCell.Column ' N° de la cellule active
 DerCol = WS1.Cells(1, Columns.Count).End(xlToLeft).Column

 For NumCol = ColDep To DerCol Step 2
    DerLig = WS1.Cells(Rows.Count, NumCol).End(xlUp).Row
    NouvCol = NouvCol + 1
    WS1.Range(WS1.Cells(1, NumCol), WS1.Cells(DerLig, NumCol)).Copy WS2.Cells(1, NouvCol)
 Next
End Sub

A adapter

A+
 

Discussions similaires

Réponses
0
Affichages
133

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi