Copy donnees filtrer sans les titres
Le
Jed
Bonjour,
Suite à des questions que j'ai posée ici même, plusieurs
personnes (dont je remercie) m'ont donné qq lignes de
codes que j'essaie d'adapter. Mais je bute sur un pti truc.
J'ai un onclet 'Recup" qui contient mes critères de filtre
et un onglet "liste" dans lequelle je dois copier les
lignes filtrées.
Problème je n'arrive qu'a copier une seule ligne parceque
systematiquement je reecris le titre et les lignes a
partir de "A1". J'ai essaiyer de calculer la dernière
ligne et copier après mais là je copie plusieurs fois les
titres.
Ci dessous le code que j'utilise:
==
Rows("1:1").Select 'feuilles Données active
AutoFilterMode = False
Selection.AutoFilter
For Each cell In Sheets("Recup").UsedRange
Selection.AutoFilter Field:=1, Criteria1:=cell
Range("A1").CurrentRegion.Copy
Sheets("Liste").Paste Destination:=Sheets
("Liste").Range("A1") '--> C'est la que ca merdoie !!!
Application.CutCopyMode = False
Next
Comment faire evoluer le numero de ligne pour pouvoir
copier les unes après les autres dans l'onglet "Liste".
Ma réconnaissance éternelle et toute ma fortune ira à
celui qui me dépannera :-))
PS: Fortune estimée dans "Forbes" à ce jour : 200 F CFA
en pièces de 10 centimes
Suite à des questions que j'ai posée ici même, plusieurs
personnes (dont je remercie) m'ont donné qq lignes de
codes que j'essaie d'adapter. Mais je bute sur un pti truc.
J'ai un onclet 'Recup" qui contient mes critères de filtre
et un onglet "liste" dans lequelle je dois copier les
lignes filtrées.
Problème je n'arrive qu'a copier une seule ligne parceque
systematiquement je reecris le titre et les lignes a
partir de "A1". J'ai essaiyer de calculer la dernière
ligne et copier après mais là je copie plusieurs fois les
titres.
Ci dessous le code que j'utilise:
==
Rows("1:1").Select 'feuilles Données active
AutoFilterMode = False
Selection.AutoFilter
For Each cell In Sheets("Recup").UsedRange
Selection.AutoFilter Field:=1, Criteria1:=cell
Range("A1").CurrentRegion.Copy
Sheets("Liste").Paste Destination:=Sheets
("Liste").Range("A1") '--> C'est la que ca merdoie !!!
Application.CutCopyMode = False
Next
Comment faire evoluer le numero de ligne pour pouvoir
copier les unes après les autres dans l'onglet "Liste".
Ma réconnaissance éternelle et toute ma fortune ira à
celui qui me dépannera :-))
PS: Fortune estimée dans "Forbes" à ce jour : 200 F CFA
en pièces de 10 centimes

Poser une question


Devrait fonctionner :
Range("A1").CurrentRegion.Offset(1).Copy
Sheets("Liste").Paste Destination:=Sheets("Liste").Range
("A1").End(Xlup).Offset(1)
Camille
merci pour ta réponse,
Je viens de le tester mais ça fonctionne à moitié :-(
Maintenant j'ai bien une seule ligne de titre mais les
lignes se copient les unes sur les autres.
Quand je récupère le premier filtrage, les lignes se
recopient bien, par contre le filtrage avec le critère
suivant vient effacer les premières lignes copiées.
J'ai l'impression que la copie se fait toujours à partir
de A2 sur l'onglet "Recup".
Je n'arrive pas a positionner la copie sur la dernière
ligne du tableau.
le code après modif :
For Each cell In Sheets("Recup").UsedRange
Selection.AutoFilter Field:=3, Criteria1:Îll
Range("A1").CurrentRegion.Copy
Sheets("Liste").Paste Destination:=Sheets
("Liste").Range("A1").End(xlUp).Offset(1)
Application.CutCopyMode = False
Next
Merci de ton aide.
Destination:=Sheets("Liste").Range("A1").End(Xlup).Offset(1)
Au lieu de A1, on devrait trouver "A65535" soit la dernière cellule de la
colonne A.
Comme le nombre de lignes dépend de la version Excel, il vaut mieux utiliser
par exemple
Destination := ActiveSheet.Cells(ActiveSheet.Rows.Count,
1).End(xlUp).Offset(1, 0)
A part çà, pour éviter d'utiliser "CurrentRegion" qui peut parfois déborder
si on a la mauvaise idée d'ajouter un commentaire à droite du tableau, on
peut désigner la zone filtrée via le mot clé [_filterdatabase]
et la fonction SpecialCells(xlVisible) pour ne retenir que les lignes visibles
par exemple
Set ZoneFiltrée= _
[_filterdatabase].SpecialCells(xlVisible)
Pour ne garder que les lignes sous le titre, on se décale d'une ligne, en
réduisant aussi la zone d'une ligne
Set
LignesAffichées=Zonefiltrée.resize(rowsize:=ZoneFiltrée.rows.count-1).offset(1,0)
un simple
LignesAffichées.select
permet de contrôler visuellement que la zone sélectionnée est la bonne.
Lionel.
"Jed" wrote:
ça marche...
OUffff, je galère depuis des heures et excel ne m'aidait
pas beaucoup.
Merci merci merci... Monsier L.Poussier :-)
Cdlt
Jed