AutoFilter, Areas et Tableau

  • Initiateur de la discussion Initiateur de la discussion Jeff
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jeff

Guest
Bonjour à tous,

Pour accélérer du code, je souhaiterais utiliser une plage autofiltrée sans la copier et placer ses valeurs dans un tableau pour travailler dessus.

Je me trouve bloquer avec les areas (mon tableau ne voit que la 1° ligne visible). Comment prendre en compte tous les areas de la plage filtrée afin que toutes les valeurs de la plage filtrée (sauf les valeurs de champs) soit récupérable dans un unique tableau.

Merci de me répondre et bonne journée
 
Bonjour Zon,

Merci de me répondre (je n'y croyais plus) mais la réponse n'est pas bonne car je me suis mal exprimé:

Je sais récupérer par VBA une plage autofiltrée à l'aide de specialcells(xlcelltypevisible) pour la recopier sur une feuille du classeur et travailler avec ses données.

Mais je pense que l'on peut accélérer le code si au lieu de copier la plage autofiltrée on place cette plage dans un tableau variant.

Comme à l'issue du filtre j'ai plusieurs lignes visibles avec chacune un n° de ligne différent pour pouvoir placer l'ensemble de la plage filtrée dans un tableau variant il faut passer par les Areas de la plage et redimensionner et préserver à chaque fois le tableau variant.

Ben c'est là que je m'embrouille un peu et que je souhaite de l'aide.

Merci d'avance.
 
Salut,

Il me semble que c'est ce que tu voulais, je passe bien par un tableau variant.


Quand j'écris:
With Plage
T = .Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Value
End With

'T est bien variant auquel j'affecte la plage filtrée mais sans la 1 ère ligne

ensuite j'écris le résultat

.[A65536].End(xlUp)(2).Resize(UBound(T), UBound(T, 2)) = T


Mets un exemple avec ton début de code sinon car je vois pas ce que tu cherches à faire

A+++
 
Hello,

J'avais fait ce que tu écris et je viens de le refaire: le pb reste entier

Si la plage filtrée comporte plusieurs lignes non adjacentes, T ne récupère que la 1° ligne visible (area(1)) pas les autres. Fais l'essai moi ça ne marche pas.

En plus ça me semble normal puisque plagefiltrée.Address donne bien les adresses de chaque ligne filtrée (séparées par 😉 et pas une adresse range globale
A+
 
Re

Je répond à Sylvain: je cherche à faire cela pour accélérer le code (mais peut-être me trompe-je)

J'ai un formulaire de consultation qui me permet pour un projet donné et par nom de salarié d'afficher la charge de travail par mois concerné.

donc visualise:
Janv Février mars etc...
nom1 20% 100%
nom2 50%
nom3 100%

La base de données elle est construite normalement:
champ1 champ2 champ3 champ4
nom1 Janv 20 projet1
nom1 mars 100 projet1
nom2 Février 50 projet1
etc..

Donc à chaque appel du bouton de commande consultation
Base de données. Autofilter avec les critères choisis
copie sur une feuille cachée
extraction sans doublon du champ1 filtrée pour avoir les salariés concernés et copie dans le formulaire de consultation
extraction de la charge correspondante et copie visà vis du mois et du salarié concerné

Ben cette procédure est lente
et c'est pourquoi je pensais passer par un tableau variant

A+ (pas c't'aprèm j'ai RTT cadeau de Noël)
 
bonjour,

essaie de m'envoyer directement par mail comme ça je verrai la différence. Il y a peut-être encore plus rapide, si tu n'as besoin que d'un résultat calculé pourquoi ne pas essayer les formules de base de données. Tu auras un résultat immédiat sans macro.
Ou alors utilise un tableaux croisé.

A+
 
Salut,

Je veux bien t'aider mais de là à reconstruire un fichier....
A premiere vue trop de worksheetfunction, tu boucles en plus directement sur une plage de cellule pour modifier une à une les cellules
=>IL faut passer par des tableaux VBA...

=> regardes Lien supprimé mais postes ou envoies moi ton fichier.

A+++
 
Bonjour Zon,

Non, non je ne veux pas que tu reconstruises mon fichier. Tu as fait le même diagnostif que moi mais toi tu sais faire: il faut que je passe par des tableaux VBA.

Avant d'envoyer mon fichier, je cherche encore un peu à l'aide du lien que tu m'as fourni (très bien!).

Si je ne m'en sors pas je te recontacte. Merci encore.

PS: Je souhaite éclaircir encore ma demande car pour le moment les enregistrements récupérés par mon formulaire se retrouvent sur une feuille Excel (qui va exploser!)alors que dans l'idéal je souhaite réaliser un modèle Excel distribuable qui renseigne par l'utilisation d'une feuille formulaire une bdd Access (donc nourrit par les différents contributeurs)

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour