Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Coller-copier après un filtre

2 réponses
Avatar
domivax
Bonjour =E0 tous,

J'ai une feuille =AB ListeCartes =BB qui comprend toutes mes donn=E9es.
Ligne 1 =3D Ligne de titres, =E0 partir de la ligne 2 =3D les donn=E9es.
Apr=E8s un filtre, je dois copier et coller les donn=E9es visibles sur une
feuille =AB Facture =BB colonnes apr=E8s colonnes.

Si je n'ai aucune ligne visible ma macro marche gr=E2ce au If
Appliaction.Subtotal(3, Range.....) =3D 0 Then, si j'ai plus de 2 lignes
visibles, ma macro est ex=E9cut=E9e parfaitement, par contre si je n'ai
qu'une ligne visible la macro me copie =E9galement la ligne des titres
en plus de la donn=E9e de la seule ligne visible.

Il me manque visiblement (c'est peu de le dire) une code apr=E8s le Exit
Sub :

If Application.Subtotal(3, Range("A2:A10000")) =3D 1 Then
Set r =3D ????

??? =E9tant une variable que je n'arrive pas =E0 composer.

Merci pour votre aide.
A bient=F4t
Xavier


Ma macro :

Sub CollerCopierFacture()

'colonne 1

Worksheets("ListeCartes").Activate

If Application.Subtotal(3, Range("A2:A10000")) =3D 0 Then
Exit Sub
Else

Set r =3D Range("ListeCartes!C2:" &
Worksheets("ListeCartes").Range("C65536").End(xlUp).Address)
Set r =3D r.SpecialCells(xlCellTypeVisible)

r=2ECopy
ActiveSheet.Paste Destination:=3DWorksheets("Facture").Range("A6")


'colonne 2

Set r =3D Range("ListeCartes!F2:" &
Worksheets("ListeCartes").Range("F65536").End(xlUp).Address)
Set r =3D r.SpecialCells(xlCellTypeVisible)

r=2ECopy
ActiveSheet.Paste Destination:=3DWorksheets("Facture").Range("B6")


'colonne 3

Set r =3D Range("ListeCartes!U2:" &
Worksheets("ListeCartes").Range("U65536").End(xlUp).Address)
Set r =3D r.SpecialCells(xlCellTypeVisible)

r=2ECopy
ActiveSheet.Paste Destination:=3DWorksheets("Facture").Range("C6")
End If
End Sub

2 réponses

Avatar
JB
Bonjour,

Copie une zone filtrée :

http://cjoint.com/?gelSjJoCiG

Sheets("result").[A2:G1000].ClearContents
If Application.Subtotal(3, [A1:A1000]) > 1 Then
Range("A2", [G65000].End(xlUp)).Copy Sheets("result").[A2]
End If

JB



On 4 juin, 10:25, wrote:
Bonjour à tous,

J'ai une feuille « ListeCartes » qui comprend toutes mes données.
Ligne 1 = Ligne de titres, à partir de la ligne 2 = les données.
Après un filtre, je dois copier et coller les données visibles sur une
feuille « Facture » colonnes après colonnes.

Si je n'ai aucune ligne visible ma macro marche grâce au If
Appliaction.Subtotal(3, Range.....) = 0 Then, si j'ai plus de 2 lignes
visibles, ma macro est exécutée parfaitement, par contre si je n'ai
qu'une ligne visible la macro me copie également la ligne des titres
en plus de la donnée de la seule ligne visible.

Il me manque visiblement (c'est peu de le dire) une code après le Exit
Sub :

If Application.Subtotal(3, Range("A2:A10000")) = 1 Then
Set r = ????

??? étant une variable que je n'arrive pas à composer.

Merci pour votre aide.
A bientôt
Xavier

Ma macro :

Sub CollerCopierFacture()

'colonne 1

Worksheets("ListeCartes").Activate

If Application.Subtotal(3, Range("A2:A10000")) = 0 Then
Exit Sub
Else

Set r = Range("ListeCartes!C2:" &
Worksheets("ListeCartes").Range("C65536").End(xlUp).Address)
Set r = r.SpecialCells(xlCellTypeVisible)

r.Copy
ActiveSheet.Paste Destination:=Worksheets("Facture").Range("A6")

'colonne 2

Set r = Range("ListeCartes!F2:" &
Worksheets("ListeCartes").Range("F65536").End(xlUp).Address)
Set r = r.SpecialCells(xlCellTypeVisible)

r.Copy
ActiveSheet.Paste Destination:=Worksheets("Facture").Range("B6")

'colonne 3

Set r = Range("ListeCartes!U2:" &
Worksheets("ListeCartes").Range("U65536").End(xlUp).Address)
Set r = r.SpecialCells(xlCellTypeVisible)

r.Copy
ActiveSheet.Paste Destination:=Worksheets("Facture").Range("C6")
End If
End Sub


Avatar
Ellimac
Bonjour,

Pour tester à partir d'une ligne de résultat :
Sub Macro2()
Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible).Select
Selection.Offset(1).Select
deb = ActiveCell.Address
SendKeys "+{tab}", True
fin = ActiveCell.Address
Range(Range(deb), Range(fin)).Copy
End Sub

Camille

"" wrote:

Bonjour à tous,

J'ai une feuille « ListeCartes » qui comprend toutes mes données.
Ligne 1 = Ligne de titres, à partir de la ligne 2 = les données.
Après un filtre, je dois copier et coller les données visibles sur une
feuille « Facture » colonnes après colonnes.

Si je n'ai aucune ligne visible ma macro marche grâce au If
Appliaction.Subtotal(3, Range.....) = 0 Then, si j'ai plus de 2 lignes
visibles, ma macro est exécutée parfaitement, par contre si je n'ai
qu'une ligne visible la macro me copie également la ligne des titres
en plus de la donnée de la seule ligne visible.

Il me manque visiblement (c'est peu de le dire) une code après le Exit
Sub :

If Application.Subtotal(3, Range("A2:A10000")) = 1 Then
Set r = ????

??? étant une variable que je n'arrive pas à composer.

Merci pour votre aide.
A bientôt
Xavier


Ma macro :

Sub CollerCopierFacture()

'colonne 1

Worksheets("ListeCartes").Activate

If Application.Subtotal(3, Range("A2:A10000")) = 0 Then
Exit Sub
Else

Set r = Range("ListeCartes!C2:" &
Worksheets("ListeCartes").Range("C65536").End(xlUp).Address)
Set r = r.SpecialCells(xlCellTypeVisible)

r.Copy
ActiveSheet.Paste Destination:=Worksheets("Facture").Range("A6")


'colonne 2

Set r = Range("ListeCartes!F2:" &
Worksheets("ListeCartes").Range("F65536").End(xlUp).Address)
Set r = r.SpecialCells(xlCellTypeVisible)

r.Copy
ActiveSheet.Paste Destination:=Worksheets("Facture").Range("B6")


'colonne 3

Set r = Range("ListeCartes!U2:" &
Worksheets("ListeCartes").Range("U65536").End(xlUp).Address)
Set r = r.SpecialCells(xlCellTypeVisible)

r.Copy
ActiveSheet.Paste Destination:=Worksheets("Facture").Range("C6")
End If
End Sub