Excel 2007 VBA : Copier des zones filtrées

Résolu/Fermé
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 11 oct. 2010 à 10:06
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 - 13 oct. 2010 à 10:34
Bonjour,

Voici mon problème :
Sous Excel 2007, je dispose de 2 fichiers au format identique (même nombre de colonnes et même intitulés), les lignes de ces 2 fichiers sont filtrés suivant le filtre suivant : AB = oui
et je dois effectuer un copié/collé de la premier liste filtrée dans un onglet vierge sur un nouveau fichier, puis aller chercher la 2eme liste filtrée afin de la copier, à la suite de la première, dans le nouveau fichier.

J'aimerais en faire un macro VBA afin de l'intégrer dans celles que j'ai déjà créé.
Merci d'avance pour votre aide. :)
A voir également:

1 réponse

Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 20
13 oct. 2010 à 09:54
J'ai trouve ma réponse :
Pour le copier coller, il suffit de faire :
Range("A1:AE25000").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy


Ce qui permet de ne prendre en compte que les lignes visibles et non celles filtrées.
Ensuite, on colle de manière classique.

Pour la copie de la deuxième liste, à la suite de la première, on effectue le meme genre de filtrage et de copie que précédemment, mais au moment de coller on passe la commande :

Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste


La première ligne va chercher la dernière ligne remplie de la liste de valeur (sur la colonne "A" puis se décalera d'une ligne vers le bas et la deuxième ligne effectue le collage.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 13/10/2010 à 10:31
Bonjour,
As tu essayé (moi non) de te passer des sélections? un peu comme ceci :

Range("A1:AE25000").SpecialCells(xlCellTypeVisible).Copy Range("A65536").End(xlUp).Offset(1, 0)


Qui est "censé" faire tout le copier/coller en une ligne de code...
0
Eaheru Messages postés 197 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 12 mars 2018 20
13 oct. 2010 à 10:34
Ah non, mais je vais tenter ça. Le code serait allégé. Ce ne serait pas un mal.

Merci !
0