Pb VBA: ComboBox activant 2filtres chacun sur 2colonnes ??
Résolu/Fermé
Dianex87
Messages postés
79
Date d'inscription
jeudi 9 mars 2017
Statut
Membre
Dernière intervention
8 août 2017
-
Modifié le 26 avril 2017 à 15:22
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017 - 27 avril 2017 à 14:46
Dianex87 Messages postés 79 Date d'inscription jeudi 9 mars 2017 Statut Membre Dernière intervention 8 août 2017 - 27 avril 2017 à 14:46
A voir également:
- Pb VBA: ComboBox activant 2filtres chacun sur 2colonnes ??
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
1 réponse
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
26 avril 2017 à 20:11
26 avril 2017 à 20:11
Bonsoir Diane, bonsoir le forum,
Un petit exemple en pièce jointe (que tu aurais dû fournir toi-même d'ailleurs)...
https://www.cjoint.com/c/GDAskMOQCtR
Un petit exemple en pièce jointe (que tu aurais dû fournir toi-même d'ailleurs)...
https://www.cjoint.com/c/GDAskMOQCtR
Modifié le 27 avril 2017 à 11:13
Le site cjoint.com qu'on m'a effectivement déjà suggéré par le passé est bloqué à mon boulot... J'essaie d'expliquer au mieux mais je me doute que ce n'est pas toujours evident à comprendre.
Si tu as le temps de m'expliquer 2/3 choses de la macro, je suis preneuse:
1- tout d'abord je m'étonne que tu aies nommé 2 fois la meme macro Private Sub CommandButton1_Click() dans le code de la feuille HOME et celui du USERFORM. Je pensais cela impossible car macro en doublon ?
2- l'expression CURRENTREGION correspond-elle à toutes les cellules remplies contigues de A1 ici en l'occurrence ? Donc finalement cela englobe toutes les cellules remplies de la feuille TOPICS ? Et ce serait la meme chose que si tu avais mis T.Range("B1").CurrentRegion par exemple, ou meme C5 ? Et si des lignes/colonnes contigues sont ajoutées en cours de projet, elle seront intégrées à la CurrentRegion?
3- Enfin, j'ai rajouté ALL Suppliers et ALL A/L dans mes listes de valeurs. Un user peut par exemple vouloir sélectionner tel fournisseur avec toutes les A/L. Ci-dessous la modif de code que j'ai essayée, mais qui ne remonte aucune donnée filtrée:
Une idée de ce qui ne va pas, stp ?
Merci bcp,
Diane
Modifié le 27 avril 2017 à 12:09
Première question :
Par défaut un nouveau bouton s'appelle CommandButton1, 2 3, etc. Mais un CommandButton dans un onglet a son code complètement isolé d'un CommandButton dans une UserForm. Donc il n'y a rien d'anormal à retrouver le même nom puisque VBA ne fera jamais la confusion... Les boutons dans un onglet ont leur code dans le composant VBA de l'onglet (Feuil1(Feuil1) par exemple) et ceux d'une Userform ont leur code dans le composant VBA de l'UserForm (UserForm1 par exemple).
Seconde question :
CurrentRegion correspond bien aux cellules adjacentes. Il est d'usage d'utiliser la ligne contenant les étiquettes ou en-têtes, donc la ligne 1 et la première colonne, donc la colonne A. Mais comme tu le dis, B1, aurait aussi bien fait l'affaire. Cependant. il vaut mieux éviter des cellules au milieu du tableau car si elles sont entourées de cellules vides, CurrentRegion renvoie une plage erronée. En cas de doute, teste avec un Range("Ta_Cellule").CurrentRegion.Select et vérifie que cela englobe bien tout le tableau...
Oui les lignes ajoutées seront intégrées à condition qu'il n'y ait pas une ligne complète de cellules vides séparant les données (idem pour les colonnes)
Troisième question :
J'avais supprimé les options ALL car le code commence par supprimer tous les filtres dès que l'on clique sur le bouton OK avec la ligne :
If T.FilterMode = True Then T.Range("A1").CurrentRegion.AutoFilter. Donc par défaut, c'est toujours ALL si aucune autre valeur n'est sélectionnée... Utiliser les options ALL était finalement plus compliqué à gérer...
27 avril 2017 à 14:46
Quant à 3- j'ai mieux saisi cette condition.
Mille mercis, encore, je marque comme résolu !
27 avril 2017 à 11:42
L'étoile * qui fermait mes chaines de caractère était visiblement de trop.
J'attends néanmoins tes commentaires pour les interrogations soulevées à mon precedent post, et of course si t'as des remarques sur ce code...
Merci encore!!
Diane