|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Étudiant Inscription : août 2011 Messages : 63 ![]() |
Bonjour,
Voilà j'ai un tableau de donnée dont la colonne A correpond à une pièce mécanique et les colonnes suivantes ces caractéristiques techniques. Je voudrais pouvoir trouver les pièces mécaniques correpondant à une recherche sur plusieurs critères. J'ai donc pour cela un userform avec 3 textbox. J'aimerais donc que lorsque je renseigne la première case il me trouve toutes les pièces ayant la meme valeur (exemple si je dis que la première case correpond au poids je veux trouver toutes les pièces de 80 kg (80 étant la valeur que je rentre dans la textbox et qu'il cherche dans le tableau)). Mais ensuite j'aimerais pouvoir renseigner la deuxième case et qu'il viennent chercher parmis les pièces qu'il a trouvé avec la première recherche et ainsi de suite. Au départ j'avais un fichier qui cherchais selon un seul critère et je faisais un copier coller des lignes qui m'interessait. J'ai pensé refaire cette démarche mais cela signifie qu'il faut que je colle à un endroit pour ma première recherche puis que je vienne chercher dans les lignes collées pour la deuxième .... ce qui me parait assez long et fastidieux. Auriez vous une idée de comment m'y prendre pour avoir quelquechose d'assez simple. Faut-il utiliser des boucles imbriquées? Merci de votre aide ( je précise que je ne demande pas qu'on me donne le code pour faire ce que je veux mais les fonctions à utiliser pour le créer Julien |
|
|
00
|
|
|
#2 |
![]() ![]() |
avant tout pourquoi ne pas utiliser un filtre automatique (menu données)
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Étudiant Inscription : août 2011 Messages : 63 ![]() |
j'ai un fichier sur lequel sont mis des filtres automatiques. C'est juste une question pratique. Le fait d'avoir un menu est plus plaisant pour l'utilisateur.
|
|
|
00
|
|
|
#4 |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
Il ne te faut pas 3 textbox, mais 3 Combobox, car même pour le premier, c'est absurde de rentrer une valeur non présente. Ensuite pour les alimenter, il faut effectivement utiliser les filtres auto (via VBA), pour gérer tes combos en cascade.
cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Étudiant Inscription : août 2011 Messages : 63 ![]() |
D'accord je vois ce que tu veux dire. Cà me semble pas mal pour ce que je veux faire. Mais par contre je vois pas comment je donne à la deuxième combobox la plage de donné (l'alim) qui est filtré a partir du premier combobox?
|
|
|
00
|
|
|
#6 | ||||||||
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
Tu mets en critère de filtre ce qui a été sélectionné dans le combo1 du genre : Code :
Code :
ensuite : Code :
Code :
Mettre aussi des lignes de contrôles, activation des filtres auto etc... cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
||||||||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Étudiant Inscription : août 2011 Messages : 63 ![]() |
Tu vas un peu trop vite pour moi mais je vais essayer de comprendre.
Bon pour filtrer avec une combobox ok je vois comment çà marche. Le truc que je ne parviens pas a comprendre c'est comment la seconde combobox fait pour ne prendre que les valeurs filtrées par la première. Autre chose, si je ne renseigne pas ma première combobox et que je veux filtrer qu'avec la deuxième çà fonctionne encore? Désolé d'être lent à la détente mais je débute. merci julien |
|
|
00
|
|
|
#8 |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
vois la remarque le premier jet n'était pas complet. Sinon, cette approche est conçue pour que les combo dépendantes soient vierges de choix si on n'a pas renseigné la précédente et soient réinitialisées si on e change une hiérarchiquement plus élevée... en toute logique. cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Étudiant Inscription : août 2011 Messages : 63 ![]() |
Ah oui j'avais pas fais gaffe. Bon çà n'empèche que je ne comprend pas beaucoup de choses!
Qu'est ce que: strColonneCible? Pourquoi y a-t-il des str partout c'est juste le nom de tes variables? Qu'est ce que c'est AlimCbo dans l'expression Et la fin pour moi c'est du chinois. Cet instruction sert a quoi? A donner l'endroit et les colonnes que l'on doit voir? Code :
Set objPlageCible = Worksheets("Base").AutoFilter.Range.Columns(Range(strColonneCible).Column).SpecialCells(xlCellTypeVisible) Merci |
|
|
00
|
|
|
#10 | ||||
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Citation:
du coup avec les préfixes je sais d'un coup d’œil que strxxxx est (ou devrait être) une variable String. Citation:
A partir du moment où un code va être réutilisé à l'identique plusieurs fois à quelques variables près, il faut le mettre dans une procédure indépendante, c'est plus léger, plus lisible et infiniment plus maintenable. Call : voir aide VBA... Citation:
Citation:
Il y a toutes les réponses sur DVP dans la FAQ et les Tutos Il faut y aller pas à pas, les liens cités sont très explicites et s'aider de l'aide VBA aussi mot à mot si besoin pour comprendre la construction simple à lire ensuite... cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
||||
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Étudiant Inscription : août 2011 Messages : 63 ![]() |
Je te remercie pour ton aide et je suis entrain d'essayer de mettre en place le programme. Toutefois j'ai toujours un problème lorsque je ne renseigne pas toutes les combobox. Si je ne renseigne que la deuxième je n'ai aucun choix puisque celui ci découle de la première non??
Ceci est un point important de ma fonction. Ne pas avoir à remplir toutes les cases. Y a-t-il un moyen d'y parvenir? Merci Julien |
|
|
00
|
|
|
#12 |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
Oui, mais la logique n'est plus la même et ne correspond plus à la question initiale. Pour y arriver, il faudrait qu'à l'aide de ce qui a été vu tu te familiarise avec les commandes et la syntaxe employées. Une fois que pour toi la lecture / traduction du code sera devenue claire et que tu peux enchaîner une quatrième combo par exemple... Tu prends un crayon et un papier et tu mets noir sur blanc ce que tu veux faire avec les différentes implications, ce que tu permets, ce qu'il faut éviter etc.. Et à partir de là tu crée la liste des outils ( contrôles activex dont tu as besoin et tu codes). Et au final tu t'aperçois que tu a gagné du temps et que tu n'as pas galéré comme un fou. A vue de nez, je dirais que sur ton cas, tu peux alimenter tes 3 combos via l'initialize de l'USF, puis ensuite appliquer le code précédent remanié un peu sur les évènements change des combos voulus. précieux : http://silkyroad.developpez.com/VBA/ControlesUserForm/ Reste à mettre résolu sur ce fil et à revenir poser des question focalisées si tu bloques sur des points précis ensuite. cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com