Boucle For colonne VBA

Bonjour,

C'est vraiment urgent, j'ai un projet à rendre très vite et je bloque dans cette partie, aidez-moi s'il vous plait

Je souhaiterai parcourir toutes les colonnes et pour chaque colonne copier la colonne à partir de la 2eme ligne jusqu'a la dernière ligne et l'a coller dans une autre feuille, puis on passe à la colonne suivante et on fait pareil mais cette fois ci on colle la nouvelle colonne après celle que l'on vient de coller et ainsi de suite.

Tant qu'il y a des colonnes(Non vide), je prend et je copie à la suite.

Avec mon niveau en VBA j'arrive vraiment pas, j'ai tester un code mais sa marche pas du tout.

Merci pour votre aide.

8exemp.xlsm (24.03 Ko)

Bonjour,

à tester,

5filou93-exemp.xlsm (21.83 Ko)
Sub Macro1()
With ActiveSheet
  LastCol = .Range("A1").End(xlToRight).Column
  For i = 1 To LastCol
    LastRow = .Cells(Rows.Count, i).End(xlUp).Row
     addSource = .Range(Cells(1, i).Address, Cells(LastRow, i).Address).Address
     addDest = .Range(Cells(1, i).Address, Cells(LastRow, i).Address).Address
    Sheets("Destination").Range(addDest).Value = .Range(addSource).Value
  Next
End With
End Sub

Bonjour,

Merci de m'avoir répondu, c'est presque ce code là en fait je souhaite que les colonnes fassent comme sa dans destination :

20,1

19,8

21,3

20,7

22,6

24,1

23,8

22,5

23,4

24,5

22,9

31,2

31,6

31

32,1

31,4

Je souhaiterai qu'elle se suivent c'est assez compliqué parce que du coup faut donner l'ordre à la colonne d'aller sous la dernière ligne de la dernière colonne copier mais j'ai retrouve de l'espoir on y est presque !!! Merci

re...

à tester,

Sub Macro1()
With Sheets("Données")
  LastCol = .Range("A1").End(xlToRight).Column
  For i = 1 To LastCol
    LastRow1 = .Cells(Rows.Count, i).End(xlUp).Row
    LastRow2 = Sheets("Destination").Cells(Rows.Count, 1).End(xlUp).Row + 1

     addSource = .Range(Cells(1, i).Address, Cells(LastRow1, i).Address).Address
     addDest = .Range(Cells(LastRow2, 1).Address, Cells(LastRow2 + LastRow1 - 1, 1).Address).Address
    Sheets("Destination").Range(addDest).Value = .Range(addSource).Value
  Next
End With
End Sub

Merci énormément sa marche nickel ! Merci vraiment, je suis sauvé mdrr

J'ai juste modifier cette ligne de code, au lieu de -1 j'ai mis -2 pour qu'ils soient coller :

addDest = .Range(Cells(LastRow2, 1).Address, Cells(LastRow2 + LastRow1 - 2, 1).Address).Address

Et aussi cette ligne là :

addSource = .Range(Cells(2, i).Address, Cells(LastRow1, i).Address).Address

Pour que sa copie à partir de la deuxième, c'est juste parfait merci beaucoup, bonne soirée à toi.

Merci pour ce retour,

ça me fait vraiment plaisir de voir votre compréhension du vba,

au plaisir!

J'ai une toute petite dernière question mdrr, est-ce tu sais comment choisir l'endroit où on va coller le premier ? Parce que j'essaye de le bouger de le mettre sur le B3 mais j'arrive juste à le multiplier en modifiant la ligne :

addDest = .Range(Cells(LastRow2, 1).Address, Cells(LastRow2 + LastRow1 - 1, 1).Address).Address

Mais je n'arrive pas à choisir l'endroit où le coller, aurais-tu une idée s'il te plait ?

re...

pour la colonne B,----> Rows.Count, 2

LastRow2 = Sheets("Destination").Cells(Rows.Count, 2).End(xlUp).Row + 1

et aussi 2 sur celle-ci

addDest = .Range(Cells(LastRow2, 2).Address, Cells(LastRow2 + LastRow1 - 1, 2).Address).Address

Mille merci sa marche super bien

Rechercher des sujets similaires à "boucle colonne vba"