Menu

VBA macro copier/coller sous condition [Résolu/Fermé]

- - Dernière réponse :  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

Afficher la suite 

1 réponse

Messages postés
4429
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1121
0
Merci
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.
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