VBA macro copier/coller sous condition
Résolu
Phil
-
Phil -
Phil -
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
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:
- VBA macro copier/coller sous condition
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Copier-coller - Accueil - Informatique
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Style d'écriture a copier coller - Guide
1 réponse
Bonjour,
déjà tu peux enlever toutes les lignes
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) :
Du coup pour avoir la première ligne non remplie, il faut rajouter +1.
du coup ton code devient à partir de la sélection :
Ca devrait fonctionner.
Cordialement.
déjà tu peux enlever toutes les lignes
ActiveWindow.ScrollColumnqui 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.
Merci pour la rapidité et surtout la qualité de la réponse