Copier une plage de lignes filtrées automatiquement

Le
Martin
Bonjour à tous

J'aurais besoin de votre aide pour pouvoir résoudre mon problème de
macro.

Mon problème de macro (pouvoir copier automatiquement certaines colonnes de
la plage de lignes filtrées quelque soit le nombre de lignes filtrées) :

Dans un tableau Excel ayant plusieurs colonnes de données, je filtre les
données sur un critère tel que la ville donc apparaît dans mon tableau
toutes les lignes ayant la ville souhaité. Une fois cette opération réalisée
, toujours par macro, je veux sélectionner certaines colonnes qui
m'intéressent pour pouvoir les copier dans un autre tableau.

Pour mettre en oeuvre, j'ai fait dans ma macro :
- la recherche du nombre de lignes filtrées (cette partie fonctionne)
- le numéro de la première ligne filtrée (cette partie fonctionne avec
NumPremièreLigneFiltrée comme variable)
- le numéro de la dernière ligne filtrée (cette partie fonctionne avec
NumDernièreLigneFiltrée comme variable)
- pour sélectionner les différentes colonnes j'utilise Range et c'est le
début de mon problème.
Admettons que la plage soit fixe j'aurais par exemple Range ("D22:E466,
M22:R466") dans ce cas pas de problème ça fonctionne.
Dans le cas ou la plage n'est pas fixe varie en fonction du critère de tri
comment faire pour que Range ("D'NumPremièreLigneFiltrée':
E'NumDernièreLigneFiltrée',
MNumPremièreLigneFiltrée:RNumDernièreLigneFiltrée") puisse fonctionner. Car
c'est avec cette ligne que ma macro se bloque sur un message d'erreur.

Pourriez vous me dire si c'est possible avec la manière que j'ai utilisé et
que faire et si c'est pas possible comment le faire avec une autre manière ?
Merci pour vos réponses. En espérant que la présentation de mon problème
soit claire pour vous aussi. Merci d'avance pour vos réponses futures.

Martin

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
MBFAC
Le #2212461
Bonjour

Le plus adapté semble le filtre élaboré avec copie vers un autre emplacement

il faut definir une zone de critere:
nom du champ et dessous le critere
selectionner les deux cases dans l'assistant


une zone d'extraction: les titres des champs a extraire
selectionner les noms des champs dans l'assistant

cocher copier vers un autre emplacement

a suivre..

Cordialement

Michel BERTRAND
AV
Le #2212431
Range(Union(Range(Cells(premL, 4), Cells(derL, 5)), Range(Cells(premL, 13),
Cells(derL, 18))).Address).Select

AV
Martin
Le #2212091
Bonjour

L'utilisation du filtre élaboré reste pour moi un mystère même avec tes
explications fournies. Cela peut être une solution à mon problème mais ne
sachant pas la mettre en oeuvre je l'a met de côté actuellement. Merci
encore
"MBFAC" d2j2g2$4h2$
Bonjour

Le plus adapté semble le filtre élaboré avec copie vers un autre
emplacement

il faut definir une zone de critere:
nom du champ et dessous le critere
selectionner les deux cases dans l'assistant


une zone d'extraction: les titres des champs a extraire
selectionner les noms des champs dans l'assistant

cocher copier vers un autre emplacement

a suivre..

Cordialement

Michel BERTRAND





Martin
Le #2212081
Bonjour

Je viens d'essayer ta solution mais malheureusement pour moi j'ai
toujours un message d'erreur lors de l'execution de la marco. Elle s'arrête
sur la ligne que tu me proposes. Les déclarations des variables
PremLigne...... et DernLigne.... peuvent être déclarées comme As Long si oui
cela ne gêne t'il pas la déclaration dans Cells ??
Merci
"AV"
Range(Union(Range(Cells(premL, 4), Cells(derL, 5)), Range(Cells(premL,
13),
Cells(derL, 18))).Address).Select

AV




AV
Le #2205921
Les déclarations des variables
PremLigne...... et DernLigne.... peuvent être déclarées comme As Long
** Oui


cela ne gêne t'il pas la déclaration dans Cells ??
** Pas du tout


Exemple là :
http://cjoint.com/?eboMnuNXOu

AV

Martin
Le #2204521
Merci pour ta solution qui fonctionne. Le problème provenait que ma variable
DernLigne.... avait pour valeur 0 d'ou une erreur quand la macro arrivait à
ta proposition. Après rectification la macro fonctionne comme je le
souhaitais. Merci
"AV"
Les déclarations des variables
PremLigne...... et DernLigne.... peuvent être déclarées comme As Long
** Oui


cela ne gêne t'il pas la déclaration dans Cells ??
** Pas du tout


Exemple là :
http://cjoint.com/?eboMnuNXOu

AV





Poster une réponse
Anonyme