|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Bonjour,
J'ai créé un usf qui fait une recherche selon un ou plusieurs critères. Lorsque la recherche est lancé, les lignes ne correspondant pas au critères définit dans les textbox sont cachées et non pas effacées. Je ferais un bouton pour les réafficher dans l'ordre ou c'était. Code :
Si vous voulez le fichier je le mettrais. |
||
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : septembre 2011 Messages : 6 ![]() |
Salut,
Etant donné que le type de marché est un critère texte, la condition de test doit s'écrire Code :
.EntireRow.Hidden = (.Value) <> CStr(TextBox_type_marche.Value) Code :
.EntireRow.Hidden = (.Value) <= CStr(TextBox_type_marche.Value) n. |
|
|
00
|
|
|
#3 |
|
Office & Excel ![]() ![]() ![]() |
Salut.
Perso, je résudrais ce genre de cas en utilisant les filtres automatiques en VBA. C'est 1000 fois plus simple que de boucler sur les lignes, et tu dégages la logique de filtre du VBA.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#4 |
|
Membre du Club
![]() |
Le copier coller c'est pas terrible. Pour les filtres automatiques en vba , j'en ai jamais utilisés mais pourquoi pas le tenter.
On peut faire plus de deux criteria? |
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
|
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() |
Donc vu que j'ai 5 critères, utiliser les filtres vba peux être possible que si j'en spécifie deux au maximum mais mon but est de pouvoir en spécifier 5 (même si ça n'arrivera peut-être jamais).
En attendant mon code ne fonctionne toujours pas. Apparemment pas d'erreur de compil mais surement dans le code du traitement mais je vois pas ou: Code :
|
||
|
|
00
|
|
|
#7 | |
|
Office & Excel ![]() ![]() ![]() |
Personnellement, j'ai tendance à privilégier Excel à VBA.
Pourquoi? Justemement parce que tu dis Citation:
Solution: Utiliser Excel et VBA en bonne intelligence.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() |
D'où mon code qui contient le nombre de champ maximum possible. Le but étant de faire une recherche sur au moins un critère et au plus 5.
Donc le code spaghetti comme tu dis ne sera pas employé. Le seul changement fondamental qui sera fait c'est si je veux plus de champs (en gros 5 lignes si mon code daigne fonctionner ce qui n'est pas le cas) autrement rien ne bougera. Pour en revenir au code, ce type de code (quasiment le même) fonctionne sur un autre programme mais ici il ne tourne même pas. J'ai vraiment pas d'idée. Test: - Le critère numéro marché enlève bien tous les marché sauf celui désirés donc cette partie est bonne. - Les autres critères ne fonctionnent pas ou mal |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() |
Ce qui m'intéresserait ce serait que le titulaire du marché fonctionne ce qui n'est pas encore le cas.
Est-ce que le fait d'avoir plusieurs lignes dans une seule cellule peut poser problème lors de la recherche? Car dans ma cellule sur le titulaire, j'ai le nom du titulaire, son adresse complète ainsi que la ville et le code postal (BP, cedex aussi) ainsi qu'éventuellement le prénom et nom de la personne référente son numéro de tel et de fax. Certains de ces composant peuvent être manquant sauf le premier qui est le titulaire du marché. |
|
|
00
|
|
|
#10 |
|
Office & Excel ![]() ![]() ![]() |
Pour le titulaire, tu fais comme ci la valeur tu textbox devait être égale à la valeur de la cellule, alors qu'en fait, tu dois déterminer si la chaine de ton titulaire est présente dans la cellule.
Tu dois donc faire quelque chose du genre Code :
.EntireRow.Hidden = (instr(1,.Value,CStr(TextBox_titulaire_marche.Value))=0)
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() |
Effectivement pour le titulaire ça marche carrément mieux. Mais cela ne règle pas tout parce que ça ne marche pas pour le service (j'ai essayé).
Le problème du service c'est que certaine cellule sont vide et donc lors de la recherche sur un service il me faut juste les lignes contenant le service. Si rien n'est rentré dans service un des autres critères (ou plusieurs) sera (ont) renseigné(s). Code :
|
||
|
|
00
|
|
|
#12 |
|
Office & Excel ![]() ![]() ![]() |
Pas sûr d'avoir compris ce que tu souhaites masquer en fonction du service...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#13 |
|
Membre du Club
![]() |
la seule chose que je souhaite cacher au niveau de la recherche par service c'est les lignes ne contenant pas le mot service ou fourniture ainsi que les lignes vides.
d'où le not isempty (variable) qui doit ignorer les lignes vide (qui n'apparaitront pas à la fin de la recherche) |
|
|
00
|
|
|
#14 |
|
Office & Excel ![]() ![]() ![]() |
Si j'ai bien compris, c'est le même problème que pour les titulaires. La cellule contient une chaine de caractères qui peut contenir le mot recherché.
Si c'est cela, tu peux appliquer la même technique (instr) que pour le titulaire. Tu peux aussi utiliser l'opérateur NOT LIKE "*administration*" pour masquer les lignes ne contenant pas administration, par exemple.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#15 |
|
Membre du Club
![]() |
J'avais déjà essayé de refaire comme pour le titulaire mais n'ayant pas changé le textbox forcément ça ne fonctionnait pas.
La différence avec le titulaire c'est que la j'ai des type de marché vide et que bien qu'il fasse la recherche il me garde les types vides choses que je ne veux pas. C'est pourquoi il y avait la ligne "if not empty" qui du coup fonctionne pas. |
|
|
00
|
|
|
#16 |
|
Office & Excel ![]() ![]() ![]() |
Le test sur not isempty fait que tu ne masqueras pas la ligne vide.
Si tu veux masquer les types de marché vides, enlève le test et ne garde que la ligne de code qui masque les lignes de la feuille sur le type de marché... Non?
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#17 |
|
Membre du Club
![]() |
Non. Il me cache bien tout ce qui autre mais me place les ligne vides au dessous au lieu de me montrer que les lignes qui sont au dessous (qui elles sont correctes)
|
|
|
00
|
|
|
#18 |
|
Office & Excel ![]() ![]() ![]() |
Rien compris
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#19 |
|
Membre du Club
![]() |
Quand je fais une recherche sur un champ (en l'occurrence le type de marché) des fois il est renseigné des fois il ne l'est pas.
Lorsque j'effectue ma recherche (juste sur le type de marché) il me cache les lignes ne correspondant pas à ma recherche (ce qui est normal et ce qui est le but recherché) mais il me garde les lignes ou le type de service est absent (ce que je ne veux pas). Est-ce plus clair? |
|
|
00
|
|
|
#20 |
|
Office & Excel ![]() ![]() ![]() |
Oui, c'est plus clair... Mais ce n'es pas normal...
Si ton criètère n'est pas vide, il doit masquer les lignes vides... Es-tu sûr de bien inclure toute la zone de données? Pourrais-tu rendre ton code, car je suppose qu'il a été modifié depuis le début de la discussion?
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
Copyright © 2000-2012 - www.developpez.com