Bonjour à tous,

J'ai une feuille avec une mise en forme globale (titres diverse, dates, logo de la société...)
Sur la plage B12:N12 j'ai un filtre (pas de tableau Excel, juste un filtre).

Les données présentes sous la ligne de filtre ne sont pas contigus, les utilisateurs aiment laisser des lignes vides avant de ressaisir quelque chose :
Nom : Capture.PNG
Affichages : 1135
Taille : 11,2 Ko

Le but de la manœuvre est de traité plusieurs classeurs différents ayant la même structure, en récupérant les données pour les regrouper.

J'active donc le filtre en colonne 3 (D) sur non vide :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
With ActiveSheet
    .Range("$B$12:$N$21").AutoFilter field:=3, Criteria1:="<>"
End With
Et je cherche ensuite à faire un Copy =>PasteSpecial xlPasteValues (car je ne souhaites prendre que les valeurs).
Car les plages étant discontinues cela génère plusieurs Area donc plus simple (je trouve de cette manière).

Mon souci, c'est que je n'arrive pas correctement à récupérer uniquement la plage des lignes visibles après filtre.
Avec ceci, j'obtiens bien le nombre de lignes restantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
Ce qui me permet de savoir si je doit traiter ou non.

Déjà ce qui m'échappe c'est pourquoi ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count - 1
Ne renvois pas le même résultat !

Ensuite je fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Dim srcR As Range
Set srcR = .AutoFilter.Range.SpecialCells(xlCellTypeVisible)
Mais du coup plus possible de retirer la ligne de filtre en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set srcR = srcR.Resize(srcR.Rows.Count - 1).Offset(1)
Puisqu'on se retrouve déjà avec un découpage de plage non contiguë.

Je n'arrive pas à trouver la meilleure méthode pour ne récupérer que les lignes visibles sans la ligne de filtre, le top serais un plage directement non contiguë pour se passer du Copy/Paste et pouvoir directement utiliser le .value de la source et de la destination.

Merci à vous