Copier une colonne spécifique après filtrage automatique

  • Initiateur de la discussion Initiateur de la discussion Odo
  • 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 !

O

Odo

Guest
Bonjour Forum !

Merci de m'indiquer une solution sous VBA (Excel97) pour copier une colonne d'un tableau (sans sa ligne de titre) après avoir fait un filtrage automatique.

Je crois comprendre que pour sélectionner le tableau complet la ligne serait :
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Rows.Copy

Mais comment faire pour ne sélectionner que la colonne B par exemple?

Merci pour votre aide précieuse

Odo
 
Bonjour Odo

Une petite macro qui te permet de coller en D3 le résultat du filtrage.
Le Critère de filtrage est en A2.
Le titre de la matrice à filtrer est en C2, la colonne à filtrer en dessous.

Pour éviter des filtrages indésirés, il faut laisser un espace entre les colonnes, ici, la colonne B est vide.

Sub FiltAuto()
Worksheets("feuil1").Range("D3😀1000").ClearContents
Worksheets("feuil1").Range("C2").AutoFilter _
field:=1, _
Criteria1:=[A2]
Range(Range("C2").Offset(1, 0), Range("C1000").End(xlUp)).Copy
Worksheets("feuil1").AutoFilterMode = False
Range("D3").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("A2").Select
End Sub


Cordialement

Bernard
 
Merci beaucoup Bernard pour ta réponse... mais qui n'est pas celle que j'attendais, et pour cause, ma question n'était pas des plus claires.

En fait, l'idée était d'importer certaines colonnes d'un tableau filtré, et je n'arrivais pas à écrire dans ma macro "va chercher colonne B toutes les lignes filtrées".

J'ai trouvé une solution qui marche, mais qui n'est peut-être pas la meilleure:
Sachant que col.A est toujours rempli, j'ai défini une variable indiquant le nombre de lignes filtrées obtenues dans A:
Range("A65536").End(xlUp).Select
NUM_LIGNE = ActiveCell.Row
Puis je vais copier les valeurs des colonnes (qui, elles, ne sont pas toujours remplies) :
Range("B1" & ":B" & NUM_LIGNE).Copy

Je garde tout de même précieusement ta réponse dans mes archives qui répondra sûrement à un prochain de mes problèmes.

Merci beaucoup !

Odo
 
- 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

Réponses
26
Affichages
2 K
Retour