Copier données filtrées visibles sans l’en-tête.

harzer

XLDnaute Nouveau
Bonjour le forum, bonjour à tous,
Je souhaite copier des données filtrées visibles dans une autre feuille, pour cela j’utilise le code suivant :
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Ma question est la suivante :
Comment faire pour copier les données filtrées visibles sans l’entête c.-à-d. sans la 1ere ligne.
PS : si j’exclue cette 1ere ligne c’est parce que j’ai des boutons qui sert à exécuter d’autres macros, le fait de ne pas exclure cette ligne, me copie aussi les boutons se trouvant sur cette 1ere ligne.
D’avance merci pour votre aide.
 

Dranreb

XLDnaute Barbatruc
Re : Copier données filtrées visibles sans l’en-tête.

Bonjour.
Cette procédure vous renvoi la plage filtrée dans un tableau de Variant par exemple
VB:
Sub ValoriserFiltre(TSorti() As Variant, ByVal F As Worksheet)
Dim PlgF As Range, LMax As Long, CMax As Long, Zone As Range, TEntré() As Variant, L As Long, C As Long
Set PlgF = F.AutoFilter.Range
Set PlgF = PlgF.Rows(2).Resize(PlgF.Rows.Count - 1)
Set PlgF = PlgF.SpecialCells(xlCellTypeVisible)
LMax = 0: CMax = PlgF.Columns.Count
For Each Zone In PlgF.Areas
   LMax = LMax + Zone.Rows.Count
   Next Zone
ReDim TSorti(1 To LMax, 1 To CMax) As Variant
LMax = 0
For Each Zone In PlgF.Areas
   TEntré = Zone.Value
   For L = 1 To UBound(TEntré, 1): LMax = LMax + 1
      For C = 1 To CMax: TSorti(LMax, C) = TEntré(L, C): Next C
      Next L
   Next Zone
End Sub
VB:
Dim T() As Variant
ValoriserFiltre T, Activesheet
Ce sont surtout les 3 1ères instructions qui peuvent vous intéresser: elles seraient à écrire partout de la même façon quoi que vous en fassiez après.
À +
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon