copier coller apres un filtre

  • Initiateur de la discussion Initiateur de la discussion ChristineG
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

ChristineG

Guest
Bonjour à Tous

J'aimerais automatiser la manip suivante
-filtrer la colonne C
-selectionner la ligne 'A1 : T1'
-copier
-coller le tout ds la 1ere ligne vide

J'ai un début de code mais pour le reste ?????????

ActiveCell.Offset(0,0).Range('A1:T1').Select
Selection.Copy

?????????

Merci à tous de m'aider

PS: je débute en VBA
 
bonjour,

Suis ce lien dans lequel tu trouveras un fichier exemple : Lien supprimé et quelques explications.

C'est un premier jet mais vois si cela peut te convenir.

Si pb n'hésite pas

🙂

Message édité par: Dan, à: 03/03/2005 12:45
 
Bonjour à tous

Merci Dan pour ta reponse mais helas ce n'est pas tout à fait ce que je souhaite

Petite précision : au moment ou je voudrais declencher cette macro ma colonne est deja filtrée

Une autre solution serait la bien venue
Merci


PS: Excuse moi de repondre si tardivement mais je n'ai pas de zip donc le tps d'en trouver un ....... d'essayer la solution proposée ..........
 
Bonjour Christine, Dan,
Sub PremièreCelluleVideEnPartantDuBas()
With Worksheets(Nom de la feuille)
.Activate
.Range('A65536').End(xlUp).(2).Select
End With
End Sub
Est-ce que cette macro (provenant de ce site) te convient ?
Cordialement .
Jean
 
Bonjour et merci Jean de te pencher sur mon problème
Qd je reecris ta macro et que j'essaie de la lancer, excel me renvoie un message d'erreur sur la phrase :.Range('A65536').End(xlUp).(2).Select
apparament la parenthese du 2 lui pose un problème
(au fait à quoi correspond ce (2)???????)
cordialement
Christine
 
Merci Roger/effectivement en enlevant le point devant (2) ça va mieux
Mais pour le reste .........
Voila ou j'en suis :

Sub PremièreCelluleVideEnPartantDuBas()
ActiveCell.Offset(0, 0).Range('A1:T1').Select
selection.Copy
With Worksheets('2005')
.Activate
.Range('A65536').End(xlUp)(2).Select
End With
End Sub

Si je ne filtre pas la colonne, le rang a1 t1 (par ex ligne 178)est bien copié, la 1ere cellule vide (ligne 190)est bien selectionnée
Mais le copier coller ne s'effectue pas

Si je filtre la colonne, le rang a1 t1 est bien copié mais mais la 1ere cellule selectionneé se trouve en ligne 179 (et non 190) et le copier coller ne s'effectue pas

Qui aurait une idée???????
cordialement
 
Bonsoir,

1.Logique que tu ne peux pas coller, l'instruction n'est pas présente.

Sub PremièreCelluleVideEnPartantDuBas()
ActiveCell.Offset(0, 0).Range('A1:T1').Select
selection.Copy
With Worksheets('2005')
.Activate
.Range('A65536').End(xlUp)(2).Select
.Paste
End With

2. Je ne comprends pas bien ce que tu veux dire avec la ligne 190. Ici, ta macro ne copie en effet que la plage A1 à T1.
Peux-tu apporter un complément d'explication.

3.Après le filtre, quelle est la plage concernée par la copie vers la feuille 2005 ?

Dans l'attente de te lire

🙂
 
Bonjour et merci
effectivement avec la commande paste ça va bcp mieux
Mais le pb reste entier pour 'trouver la 1 ere ligne vide ap le filtre
Voici un extrait du tableau sur lequel j'aimerai sfaire fonctionner cette macro

a b c e
1 code lot date fab qte fab...........
2 Pn40 01 07/01/05 100
3 P30 01 13/01/05 1000
4 P30 02 13/01/05 50
....
50 Pn40 02 07/02/05 1000
51

Je filtre sur la colonne (a) la ref P30 ligne 3, je lance la macro de telle façon que ma ligne 3 se recopie sur la 1 ere ligne vide de la meme feuille cad la 51
Cordialement
Christine
 
Bonsoir Christine,

D'abord mille excuses mais je t'avais complètement oublié dans mon suivi...

Par rapport à ton message, je voudrais savoir si tu filtres bien sur la colonne Code.
Si c'est le cas dans ton exemple tu devrais avoir :
- en ligne 1 les entêtes de ton tableau
- en ligne 2 la ligne que tu veux copier en dessous de ta ligne 51.

Merci de ton info


🙂
 
Bonsoir Christine,

Voilà tout est dans le fichier ci-joint.

J'ai dû changer quelque peu la macro mais tout semble fonctionner.

Ta macro (que j'ai appelée 'CopieCode'), fonctionnera si la feuille de donnée est nommée 2005. En cas de changement il faut adapter le code de la macro.

Les explications de déroulement sont en regard du code de la macro.

Espérant que cela te conviendra.

🙂 [file name=Copie-ligne_filtree-3254-V01_20050314213631.zip size=11838]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Copie-ligne_filtree-3254-V01_20050314213631.zip[/file]

Message édité par: Dan, à: 14/03/2005 21:37
 

Pièces jointes

Bonjour Dan et un grand merci
et...........si je peux me permettre d'abuser une nouvelle fois :

Voila j'ai 'tenté' d'adapter ta macro pour qu'elle fonctionne qqsoit la ligne selectionnée apres le filtre mais du coup en fin de parcours le filtre ne reviens pas à sa forme d'origine:'sélectionne A1 pour réappliquer le mode filtre automatique ne se fait pas

Sub CopieCode1()
Application.ScreenUpdating = False
Worksheets('2005').Activate
ActiveCell.Offset(0, 0).Range('A1:T1').Select
selection.Copy
With Worksheets('2005')
.AutoFilterMode = False
.Range('A65536').End(xlUp)(2).Select
.Paste
.Range('A1').AutoFilter 'sélectionne A1 pour réappliquer le mode filtre automatique
End With
Application.ScreenUpdating = True
End Sub

A+
Christine
 
Bonsoir Christine,

😱hmy: En fonction ta réponse à ma question

ar rapport à ton message, je voudrais savoir si tu filtres bien sur la colonne Code.
Si c'est le cas dans ton exemple tu devrais avoir :
- en ligne 1 les entêtes de ton tableau
- en ligne 2 la ligne que tu veux copier en dessous de ta ligne 51.

la macro que j'ai placée dans le fichier fait récupére la première ligne après que tu aies filtré tes données dans la colonne code et la copie après la dernière ligne de ta base de données.

D'après ton dernier message je comprends autre chose ...
Ce que tu veux c'est filtrer, puis récupérer n'importe qu'elle ligne filtrée et la placer après la dernière ligne de ta base de données ?

🙂 si oui :
supprime : ActiveCell.Offset(0, 0).Range('A1:T1').Select
remplace par : ActiveCell.EntireRow.Select

🙁 si non, réexplique moi tout ....

@+ Dan

Message édité par: Dan, à: 17/03/2005 22:33

Message édité par: Dan, à: 17/03/2005 22:35
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour