| ||||||||
Petite astucienne |
Bonjour,
voilà j'ai crée une liste (qui represente une ligne de titre avec plusieurs données, plus de 26) et j'ai crée pour chaque données une sous_liste. et là maintenant je voudrais que sur une autre feuille excel que je puisse cliquer sur une liste quelconque au travers d'une liste déroulante et que dans une autre cellule que je puisse avoir la sous_liste correspondantau travers d'une liste déroulante aussi. je vous poste en pièce jointe les deux exemples que j'ai fait. dans un cas j'ai meslistes et sous_listes mais dès que je clique sur la donnée commençant à la colonne AA la sous_liste correspondante ne bouge pas. j'ai compris qu'elle ne va pas au délà de la lettre Z (dans ma formule je gère les caractères des colonnes).
dans le deuxième cas, je n'ai malheureusement droit qu'à une ligne de sous_liste pour chaque données.
une solution dans l'un ou l'autre des cas m'aiderait.
merci.
Modifié par orachel79 le 17/05/2011 15:40 | |||||||
Publicité | ||||||||
| ||||||||
Astucien | Bonjour et ...Et le fichier joint | |||||||
Petite astucienne | Je ne sais pas comment le joindre j'ai beau regarder je ne vois pas o¨ il est prÚvu de joindre des piÞces | |||||||
Astucien | Bonsoir, Tu trouveras les indications ici : https://forum.pcastuces.com/une_question_sur_excel__ou_vba__lisez_ceci-f23s27113.htm | |||||||
Petite astucienne | merci bien voici donc mon premier fichier: http://cjoint.com/?AErq5o1OfFg et voilà le deuxième fichier: http://cjoint.com/?AErrbqvH1vU si je ne me suis pas bien exprimée, vous voudriez bien me le dire.
| |||||||
Astucien | Bonsoir, Première approche : Plages nommées, conserver : debut =Base!$A$2 Liste =DECALER(Base!$A$1;;;;NBVAL(Base!$1:$1)) Ajouter BaseCol1 =Base!$A:$A [Tu peux bien sûr la nommer comme tu l'entends ; tu peux supprimer les autres] Validation liste : Cellule B3: =Liste Cellule B5: =DECALER(DECALER(debut;;EQUIV(B3;Liste;0)-1);;;NBVAL(DECALER(BaseCol1;;EQUIV(B3;Liste;0)-1))-1)
J'ai opéré sur celui qui avait le plus de plages nommées et n'ai pas regardé les différences entre les deux classeurs... Vérifie si cela correspond. Il reste à effacer B5 lorsque B3 change : peut-être une procédure évènementielle pour ce détail. Par exemple (dans le module de la feuille concernée) : Private Sub Worksheet_Change(ByVal Target As Range) Modifié par ferrand le 17/05/2011 18:17 | |||||||
Petite astucienne | merci je vais regarder þa. | |||||||
Petite astucienne | Merci, ça marche. je marque résolu. j'ai une autre question à ce propos est ce que j'aurais pu utiliser la recherchev pour obtenir mes listes déroulantes, j'ai essayé mais je n'obtenais pas de résultats, c'est alors que j'ai pensé à utiliser des listes, ce qui me semble restrictif au point de vue évolution. Au cas où j'ajouterai un autre bureau je serais obligé d'étendre les listes et les renommer. Merci. | |||||||
Astucien | Hello ! RECHERCHEV te permet de pointer une entrée dans une liste mais pas de définir la liste. Parmi tes essais dont le classeur portait quelques traces, je me suis contenté de sélectionner ceux qui fonctionnaient, et de faire le dernier pas que tu n'avais pas encore franchi en décalant une plage elle-même définie par DECALER... Note que tu étais à deux doigts de la solution Par ailleurs, tu n'as rien à changer dans la méthode : Liste étant définie dynamiquement avec DECALER, tu peux étendre ta base sur de nouvelles colonnes qui seront immédiatement prises en comptes, et évidemment modifier comme tu l'entends les libellés de ta première ligne (Liste) ; la sous-liste étant définie sur la colonne concernée (sans intervention de son "nom") à chaque fois, ce sera forcément la bonne qui s'adaptera aussi aux modifications que tu apportes. Rien à changer donc... Bonne continuation. | |||||||
Petite astucienne | Merci pour ces éclaircissements, tu me sauves. | |||||||
Astucien | J'en suis ravi | |||||||
Petite astucienne | Bonjour, je reviens avec un autre problème, j'aimerais pouvoir colorier une cellule suivant le résultat qu'il m'affiche. donc si la condition est vérifié il m'affiche une couleur et le résultat. par exemple je prends un nom sonara, j'affiche sa rentabilité (colonne N) si elle satisfait à la condition > 10000 j'affiche bon client et la case se colorie en vert. si sa rentabilité est comprise entre 5000 et 10000 j'affiche client à prospecter et ilme colorie la cellule en jaune etc ...Ferrand tu m'as si bien aidé. pourrais tu encore le faire? cela concerne le même fichier. STP | |||||||
Astucien | Sûre qu'il s'agit du même fichier ? Il faut le modèle que je ne vois pas dans ton fichier précédent : tu peux de contenter de la feuille concernée. Indiquer la cellule à tester (qui affiche la rentabilité), la cellule devant afficher une mention (formule à y insérer) et la cellule à colorer (mise en forme conditionnelle). | |||||||
Petite astucienne | AH OK je n'ai surement pas ajoutÚ cette feuille lÓ. voici ma formule excel =SI(ET((INDEX(Base2!O:O;EQUIV(B5;Base2!B:B;0);1))>80%;INDEX(Base2!P:P;EQUIV(B5;Base2!B:B;0);1)>3);"BON CLIENT";"CLIENT A PROSPECTER") le problÞme c'est comment colorier suivant que leclient est bon client ou client Ó prospecter. | |||||||
Petite astucienne | http://cjoint.com/?AEtmUhAHenj voilà le lien je l'ai oublié une fois de plus la cellule qui doit changer de couleur est celle où il apparait CLIENT A PORSPECTER ou BON CLIENT dans la feuille Scoring. la cellule à tester est à rechercher, elle appartient à la colonne O de la feuille Base2, il ya une autre cellule à rechercher elle apparait à la colonne P. Ce sont s'agit des correspondances par rapport au nom qui apparait dans B5 de la feuille Scoring. ma^requête donne mais je ne sais pas comment associer des couleurs à ma cellule suivant le résultat. MERCI Modifié par orachel79 le 19/05/2011 13:33 | |||||||
Astucien | Bon, tu as fait le plus gros ! Tu as une formule conditionnelle dans ta cellule à colorer, de la forme : =SI(condition;sivrai;sifaux) La coloration que tu retiens est vert (sivrai) ou jaune (sifaux). La formule conditionnelle de MFC équivalente est donc (appliquée à B8) : C'est facile à recopier mais à quoi bon, ta formule dans B8 renvoie une valeur qu'il est aussi simple d'utiliser, soit : Mais comme tout se passe dans la même cellule, inutile de rentrer directement la formule, tu la définis par la sélection : Valeur de la cellule, Egale à et tu tapes dans la zone de texte : BON CLIENT (pour MFC verte) et CLIENT A PROSPECTER (pour MFC jaune) [sans les guillemets dans ce mode de saisie, ils sont rajoutés automatiquement.] Vu ta technicité sur des formules plus complexes, cette opération devrait être facile et rapide.
Par contre, je ne comprends pas bien les raisons du 1 comme dernier argument dans EQUIV, ce qui va te prendre en compte une valeur approchée (un nom précédent dans l'ordre alphabétique) si le nom en B5 n'est pas trouvé. Il vaudrait mieux ne rien renvoyer dans ce cas. Je mettrais volontiers : =SI(EQUIV(B5;Base2!A:A;0);0)>0;SI(ET((INDEX(Base2!N:N;EQUIV(B5;Base2!A:A;0);0))>80%;INDEX(Base2!O:O;EQUIV(B5;Base2!A:A;0);0)>3);"BON CLIENT";"CLIENT A PROSPECTER");"") Modifié par ferrand le 19/05/2011 14:59 | |||||||
Petite astucienne | Merci ferrand, c'est gÚnial de pouvoir compter sur quelqu'un. tu n'aurais pas des connaissances en xml? je l'avoue je bave sur mes exercices | |||||||
Petit astucien | Bonjour, Malgré que le sujet soit résolu, je joins ma version en TCD. - Base et Base 2 ont été retranscrits en tableau pour la création des TCD et l'insertion future de nouvelles données. - TCD_Base vous permettra de faire d'autres extractions. - TCD_Base2 permet entre autre de faire le Scoring :
http://cjoint.com/?AEuldwTHLI5 Nota : Dans Base2 il y a des erreurs de frappe dans la colonne Souscripteur. Les champs Bureaux et Souscripteur ne sont pas relatifs dans la feuille Scoring. Cordialement | |||||||
Petite astucienne | MERCI je vais regarder ça, bon c'est vrai j'ai supprimé beaucoup de données. normalque tu aies remarqué les erreurs. | |||||||
Petite astucienne | re-bonjour, c'est encore moi jpr73 j'avoue que ta méthode m'a torturé les meninges. elle est un peu compliquée pour moi. par contre j'ai voulu activer la saisie semi automatique mais rien n'y fait. ça ne donne pas. au niveau des listes déroulantes j'aimerai que la saisie semi-automatique puisse fonctionner j'ai juste modifié ma formule ainsi au niveau de la deuxième liste déroulante: =si(B3<>"";DECALER(SousFamille;;EQUIV(B3&"*";Famille1;0)-1;NBVAL(DECALER(SousFamille;;EQUIV(B3;Famille1;0)-1)));Famille1) rien ça ne fait rien. merci. | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|