Incrémenter les colonnes dans une macro

Fermé
dudule75 - 13 nov. 2009 à 11:42
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 13 nov. 2009 à 12:26
Bonjour,
question toute bete ? :
j'ai x colonnes, A, B, C, D etc... chacune contenant par exemple 3 lignes.
bibi toto mimi gaga
12 7 8 6
10 3.5 4 5
Je veux recopier toutes ces colonnes en liste, dans la colonne A.
bibi
12
10
toto
7
3.5
mimi
8
4
gaga
6
5

Voici la macro faite "à la main", colonne par colonne, mais je veux aller jusqu'au bout automatiquement :
Range("B1:B3").Select
Selection.Cut
Range("A4").Select
ActiveSheet.Paste
Range("C1:C3").Select
Selection.Cut
Range("A7").Select
ActiveSheet.Paste
Range("D1:D3").Select
Selection.Cut
Range("A10").Select
ActiveSheet.Paste
End Sub

Merci de votre aide !
Edith
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
13 nov. 2009 à 12:26
Salut,
Il te faut d'abord déterminer la dernière colonne comme ceci :
Dim dercol As Integer, i As Integer
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
Et ensuite faire ta boucle en collant systématiquement sur la première ligne vide colonne A (qui comme tu le sais en VBA s'écrit : Range("A65536").End(xlUp).Offset(1, 0))
For i = 2 to dercol
Range(Cells(1, i),Cells(3, i).Copy Range("A65536").End(xlUp).Offset(1, 0)
Next
Code global :

Dim dercol As Integer, i As Integer
dercol = Range("A1").SpecialCells(xlCellTypeLastCell).Column
For i = 2 to dercol
Range(Cells(1, i),Cells(3, i).Copy Range("A65536").End(xlUp).Offset(1, 0)
Next i

EDIT: j'ai mis Copy, mais cela fonctionne de la même manière avec Cut
0