copier la plage une fois filtré

bansan

XLDnaute Junior
Bonjour
J'aimerais copier la selection de ligne une fois que mon filtre a été fait, or je n'y arrive pas en VBA et a chaque fois il me compte toutes les lignes..
est ce que qqun aurait une idée de comment faire??

Range("B4:I4").AutoFilter
Selection.AutoFilter Field:=8, Criteria1:= _
nomchantier, Operator:=xlAnd
Cells.UnMerge
nblignes = Range("B5:B" & Range("B8000").End(xlUp).Row).SpecialCells(xlVisible).Count
Range("B5:F" & nblignes).SpecialCells(xlVisible).Select

Selection.Copy
Windows(nomfichiergestion).Activate
Cells(5, 8 + i * 7).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range(Cells(2, 8 + i * 7), Cells(2, 13 + i * 7)).UnMerge
Range(Cells(2, 8 + i * 7), Cells(2, 13 + i * 7)).Merge
Cells(2, 8 + i * 7).Value = "Exercice du 1er octobre " & anneedebutchantier & " au 30 septembre " & anneedebutchantier + 1
 

Staple1600

XLDnaute Barbatruc
Re : copier la plage une fois filtré

Bonjour


Voici un exemple (à adapter)

Recopie de la plage filtrée sur la feuill2 (avec entete )
Code:
Sub test_avec_entete()
Range("A1").AutoFilter Field:=1, Criteria1:="toto"
[B] ActiveSheet.AutoFilter.Range.Copy[/B] Sheets(2).Range("A1")
End Sub

Recopie de la plage filtrée sur la feuill2 (sans entete )
Code:
Sub test_sans_entetes()
Dim PLG_FIL As Range
Range("A1").AutoFilter Field:=1, Criteria1:="toto"
Set PLG_FIL = ActiveSheet.AutoFilter.Range
PLG_FIL.Offset(1, 0).Resize(PLG_FIL.Rows.Count - 1, 1).Copy Sheets(2).Range("A1")
End Sub
 

bansan

XLDnaute Junior
Re : copier la plage une fois filtré

Bonjour et merci pour votre aide
Le petit souci c'est que j'aimerais copier la selection que le filtre m'a donné et les transposer dans un autre classeur a partir d'un emplacement bien prcis (d'où les cells(...) que j'ai mis dans mon code

J'ai essayé ta solution JM et ..elle ne marche pas...elle me copie tout une fois qu'elle est transporté vers l'autre classeur...

"ActiveSheet.AutoFilter.Range.Copy Sheets(2).Range("A1")"

J'essaie la solution de JB ..
Merci

, je reviens
 

Staple1600

XLDnaute Barbatruc
Re : copier la plage une fois filtré

Re


Exemple pour récupérer la colonne 3 de la plage filtrée (méthode JB)
Code:
Range("_FilterDataBase").Columns([COLOR=Blue][B]3[/B][/COLOR]).SpecialCells(xlCellTypeVisible).Copy Sheets(2).[A1]
Autre syntaxe: ici pour copier la colonne 2
Code:
ActiveSheet.AutoFilter.Range.Columns([B]2[/B]).Copy Sheets(2).[A1]

Pour récupérer les colonnes A et B
Code:
ActiveSheet.AutoFilter.Range.Columns("A:B").Copy Sheets(2).[A1]
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
530

Statistiques des forums

Discussions
312 488
Messages
2 088 859
Membres
103 978
dernier inscrit
bderradji