Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 20/04/2010
Messages:
28
Système d'exploitation: PC Version Excel utilisée: 2007 |
Posté le : 08-07-2010 21h01
Bonsoir le Forum,
J'ai une liste déroulante dans laquelle je sélectionne une valeur qui va se coller dans une cellule. Il faudrait ensuite que cette zone de liste déroulante redevienne vierge. j'avais songé (dans le fichier que je vous invite à ouvrir pour plus d'explications) nommée une zone en laissant une cellule vide afin de la retrouver dans ma liste déroulante et de l'inclure dans la macro, mais à l'exécution de celle-ci la zone de liste déroulante laisse apparaitre la derniere sélection. En espérant avoir été assez clair Très bonne soirée à Tous Wilplan |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 08-07-2010 23h40
Bonsoir wilplan, le Forum,
Pas vraiment claire ton histoire wilplan... Tout d'abord, tu as utilisé une zone de liste issue des "Contrôles de Formulaire". Pour info, depuis Office 97, il est toujours conseillé d'utiliser les éléments de "Contrôles ActiveX" en lieu et place des "Contrôle de Formulaire". Pourquoi ? Déjà parce que les contrôles ActiveX savent gérer en interne des procédures évènementielles (telles que Change, Click, DblClick, GotFocus, etc...), ce que ne permettent pas les anciens Contrôles de Formulaire. Dans Excel 2007, les éléments ActiveX et Formulaire sont accessibles via le même menu d'insertion mais apparaissent sous forme de 2 sous-groupes distincts (voir dans le ruban 2007, onglet Développeur). Pour quelques explications et détails sur ce qui différencie les Contrôles de Formulaire et les ActiveX, je te conseille de jeter un oeil sur les Tutoriels n°3 et 4 que tu trouveras dans la section articles et tutoriels "VBA pour débutants" du présent site. Par ailleurs, que ce soit à base de contrôles ActiveX ou contrôles de Formulaire, en fait, je pense tout simplement qu'une quarantaine d'objets de la sorte sur une feuille de calcul ce n'est pas une bonne idée. Tu risques fort de transformer ta belle feuille de calcul en une immonde usine à gaz... Je pense, par contre, que tu aurais certainement possibilité d'exploiter les listes dites "listes de validation", et qui me semblent bien mieux adaptées pour être utiliser en grande quantité comme ça, sur une feuille de calcul. Maintenant, reste à coupler l'ensemble avec un peu de VBA pour arriver à ton objectif de traitement... et si tu veux qu'on t'aide, il va falloir que tu sois un peu plus précis dans tes explications, car pour ma part, je ne vois pas vraiment où tu veux en venir avec ton unique liste en exemple qui vient coller une valeur dans une unique cellule cible... Tu parles d'une quarantaine de listes sur 2 colonnes : comment et où sont-elles disposées exactement dans la feuil1 ? Ensuite, on sait que la première liste va déposer une valeur en cellule A1 de la feuil2 : où doivent être stockées les valeurs des 39 autres liste et selon quel ordre, quelle méthodologie ? Qu'advient-il si l'utilisateur fait un deuxième choix avec la même liste ? On écrase la valeur précédente en Feuil2 ? Comme tu peux t'en apercevoir, ce qui paraît clair dans ta tête, ne l'est pas forcément pour un regard extérieur. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 20/04/2010
Messages:
28
Système d'exploitation: PC Version Excel utilisée: 2007 |
Posté le : 09-07-2010 10h19
Bonjour Didier, le Forum,
Je vais essayer par le fichier joint de mieux me faire comprendre, j'espère être assez précis et complet. très cordialement, wilplan |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 10-07-2010 00h59
Bonsoir wilplan, le Forum,
Si j'ai bien compris le problème, tu trouveras ci-joint peut-être une façon de faire... J'ai appliqué de simples listes de validation en Feuil1 au lieu de tes contrôles de liste déroulante. Pour simplifier, j'ai nommé 6 zones sur tes feuilles : - sur la Feuil1 : . nommage des listes (que tu peux aussi mettre sur un autre onglet par souci esthétique) : Communes et Durees. . nommage des cellules de saisie (avec listes de validation) : zoneCommunes et zoneDurees. - sur la Feuil2 : . nommage des cellules de destination : cibleCommunes et cibleDurees. J'ai ensuite utilisé le code suivant (lié aux boutons "Copie" et "RAZ") : Sub CopieFeuil2() A vrai dire, je ne comprends toujours pas pourquoi tu souhaites passer par l'intermédiaire de la Feuil1, tout peut être géré directement en Feuil2, mais bon tu dois avoir tes raisons... Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 20/04/2010
Messages:
28
Système d'exploitation: PC Version Excel utilisée: 2007 |
Posté le : 10-07-2010 10h35
Bonjour Didier, le forum,
Je n'avais pas songé aux listes de validation, c'est sur que le rendu est bien plus net. Dans ces conditions, je m'empresse de tout gérer sur la même feuille. Merci pour ton aide toujours aussi efficace. Bien cordialement, Wilplan |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 20/04/2010
Messages:
28
Système d'exploitation: PC Version Excel utilisée: 2007 |
Posté le : 14-07-2010 11h48
Bonjour le Forum,
Je souhaite apporter une petite modification à mon projet, de ce fait j'en reviens à mes deux feuilles. j'ai crée une formule qui me renvoie "REF" si dans la plage de recherche la cellule est vide, j'ai joué de guillemets mais rien n'y fait. Bon d'accord elle fonctionne, mais si un As de la formule passe par là!! c'est que je deviens puriste Comme je fais une RAZ, ma formule se trouve également supprimée, c'est là qu'il me faut l'intervention d'un vbaiste Je vous joins le fichier en espérant avoir été clair dans mes explications Bonne journée et merci Wilplan |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 14-07-2010 18h42
Bonjour wilplan, le Forum,
Ci-dessous sans doute une façon de faire... Formule enJ3 Feuil1(à tirer vers le bas): =SI(I3<>"";T(INDEX(libellé;EQUIV(I3;durees)));"") Dans le module de code VBA Module1 : Option Explicit Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 20/04/2010
Messages:
28
Système d'exploitation: PC Version Excel utilisée: 2007 |
Posté le : 14-07-2010 21h12
Bonsoir Didier, le forum,
Encore un succès. Je prends bonne note de ta remarque, à vrai dire je le savais mais les automatismes ne sont pas tout à fait au point, j'y veillerai à l'avenir, d'autant que cela facilite la compréhension. Je profite de ma réponse pour obtenir quelques explications supplémentaires.
Merci Didier pour ton aide Bien Cordialement, |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 14-07-2010 23h25
Re,
Citation : wilplan a écrit : Si tu supprimes cette fonction T() de la formule et que tu choisis une durée de travail à 40 ou 50 dans ton exemple, tu verras s'afficher une valeur "0" disgracieuse dans ton tableau. C'est l'observation que j'ai faite quand j'ai testé ma proposition à l'origine. J'ai donc essayé de trouver une solution pour me débarrasser de cette valeur numérique inopportune dans la cellule... Il y a bien sûr un moyen simple d'y parvenir avec une simple condition SI(), mais comme j'aime bien optimiser les choses et que j'aime bien apprendre aussi, j'ai cherché une autre solution qui me paraisse moins lourde. Un clic sur le bouton d'insertion des fonctions (bouton fx) et j'ai parcouru les fonctions de la catégorie Texte. Je suis donc tombé sur la fonction T() dont l'aide indique : Si l'argument valeur est ou fait référence à du texte, la fonction T renvoie l'argument. Si l'argument valeur ne fait pas référence à du texte, la fonction T renvoie du texte vide "". Un test m'a ensuite permis de comprendre que c'était visiblement la réponse à mon problème. Comme tu peux le voir, rien d'extraordinaire dans ma démarche, juste de la curiosité et des tests (pour moi, c'est comme ça qu'on apprend). Citation : wilplan a écrit : Pour moi, ça fait très bien l'affaire. Sheets("Feuil2").Select "Tester" wilplan, "tester", c'est la clé si tu veux comprendre et apprendre... Citation : wilplan a écrit : Si tu observes la procédure CopieFeuil2(), tu verras que j'ai utilisé la méthode ClearContents pour les zones nommées "zoneCommunes" et "zoneDurees", mais pas pour "zonelibellé". Comme son nom l'indique ClearContents permet d'effacer le contenu d'un objet Range. Pour la zone range "zonelibellé", il n'y a rien à effacer, c'est inutile puisque la formule contenue n'affiche rien si la "zoneDurees" est elle-même vide. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Remise à" blanc "d' une zone de liste déroulante | ||
---|---|---|
Inscription: 20/04/2010
Messages:
28
Système d'exploitation: PC Version Excel utilisée: 2007 |
Posté le : 15-07-2010 09h24
Bonjour myDearFriend, le forum,
J'ai tellement appris en si peu de temps grâce à ton site d'ailleurs, que quelquefois les réflexes les plus simples m'échappent. Je dois avoir besoin de vacances. Merci pour tes explications qui complétent mes tests (si,si j'en fais beaucoup, mais plus souvent faux que justes) Dans un précédent post, tu me conseillais de supprimer les "select" de mes codes, pour la lisibilité et la rapidité d'exécution de la macro. Pour mes besoins j'avais donc rajouté sheets feuil2 .select (ne sachant pas faire autre chose)à ton code mais par respect pour ton travail et aussi parceque j'aime le travail bien fait j'aurai souhaité l'écrire différemment, si c'était possible. Bonne journée cordialement, Wilplan |
|
|
Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
Qui consulte actuellement ce sujet ?
1 Utilisateur(s) anonymes