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

Copier une plage de lignes filtrées automatiquement

6 réponses
Avatar
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

6 réponses

Avatar
MBFAC
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
Avatar
AV
Range(Union(Range(Cells(premL, 4), Cells(derL, 5)), Range(Cells(premL, 13),
Cells(derL, 18))).Address).Select

AV
Avatar
Martin
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" a écrit dans le message de news:
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





Avatar
Martin
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" a écrit dans le message de news:

Range(Union(Range(Cells(premL, 4), Cells(derL, 5)), Range(Cells(premL,
13),
Cells(derL, 18))).Address).Select

AV




Avatar
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

Avatar
Martin
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" a écrit dans le message de news:

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