VBA macro copier/coller sous condition

Résolu/Fermé
Phil - 24 mai 2011 à 15:39
 Phil - 24 mai 2011 à 15:57
Bonjour,

Je cherche à créer la macro suivante dans VBA :
A partir d'une feuille de saisie j'ai créer une feuille intermédiaire me permettant de récapituler les données de la feuille de saisie sous forme d'une ligne.
Il faut que je colle ces données dans une feuille de synthése récapitulant tous mes dossiers saisies, les uns sous les autres. Mon probléme est de coller des lignes les unes sous les autres.
Ci-dessou ce que j'ai crée
Sheets("Feuil intermédiaire").Select
Range("B2").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 37
ActiveWindow.ScrollColumn = 40
ActiveWindow.ScrollColumn = 42
ActiveWindow.ScrollColumn = 44
ActiveWindow.ScrollColumn = 46
ActiveWindow.ScrollColumn = 48
ActiveWindow.ScrollColumn = 50
ActiveWindow.ScrollColumn = 51
ActiveWindow.ScrollColumn = 52
ActiveWindow.ScrollColumn = 54
ActiveWindow.ScrollColumn = 55
Range("B2:CA2").Select
Selection.Copy
Sheets("Synthése").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Maquette de saisie").Select

Il faut maintenant que j'intégre une condition au niveau du coller pour dire que si les lignes au dessus sont pleines il faut les données se collent dans la ligne suivante

Merci d'avance de votre aide

A voir également:

1 réponse

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
24 mai 2011 à 15:46
Bonjour,

déjà tu peux enlever toutes les lignes
ActiveWindow.ScrollColumn
qui ne font qu'alourdir le code.

Ensuite, après avoir sélectionner ta feuille "Sélect", il faut récupérer le numéro de la dernière ligne remplie (on part de 65536 sous Office < 2007, de 1048576 pour 2007 et 2010) :

Derlig = Range("B65536").End(xlUp).Row

Du coup pour avoir la première ligne non remplie, il faut rajouter +1.

du coup ton code devient à partir de la sélection :
Sheets("Synthése").Select
Derlig = Range("B65536").End(xlUp).Row +1
Cells(Derlig, 1).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Maquette de saisie").Select 


Ca devrait fonctionner.

Cordialement.
0
Super, ça marche, j'ai juste eu besoin de remplacer le 1 par un 2 dans la ligne Cell, car je voulais que ça copie à partir de la colonne 2.

Merci pour la rapidité et surtout la qualité de la réponse
0