Liste déroulante fonction de la largeur de la colonne
Bonjour,
J'ai posté il y a quelques jours un message pour résoudre le problème suivant: faire en sorte qu'à partir d'une liste déroulante (validation de données) affichant des noms, seules les initiales s'insèrent dans la cellule cible. Banzaï64 a eu la gentillesse de créer le code VBA, qui fonctionne très bien.
Mais un nouveau problème surgit. Grâce à son code, j'ai pu réduire la largeur des colonnes de mon tableau à celle des initiales. La largeur des colonnes est maintenant de 3. Le problème résultant, c'est que la liste déroulante est maintenant tronquée, de sorte qu'on ne voit que partiellement les noms. Ce problème de largeur d'une liste déroulante par validation de données, fonction de la largeur de la colonne dans laquelle cette validation de données est insérée, n'est semble-t-il plus un problème sur les récentes versions d'Excel sur PC (2010, 2013) ou sur Mac (2011), mais l'est encore pour la version 2007 que j'utilise au bureau. La mise à jour vers une version d'Excel plus récente relevant d'une décision administrative de mon employeur, je dois pour l'heure trouver une solution avec Excel 2007.
Serait-il possible alors de faire en sorte que la largeur d'une colonne s'agrandisse temporairement, lorsque la cellule active s'y trouve, de sorte que la liste déroulante puisse s'afficher intégralement (il faudrait que la largeur de la colonne soit de 20 à ce moment) et qu'elle retrouve sa largeur de 3, celle suffisante pour afficher les initiales, quand la cellule active change de colonne?
J'ai lu sur Internet la solution suivante: mettre d'abord la largeur de la colonne à 20, insérer la validation de données, sauvegarder le fichier, puis réduire la largeur de la colonne à 3. Il est vrai qu'alors, la liste déroulante s'affiche dans toute sa largeur (20), même si la largeur de la colonne est devenue 3, mais cette solution ne reste vraie que jusqu'à la prochaine sauvegarde du fichier. La liste déroulante par validation de données reprend alors la largeur de la colonne dans laquelle elle est insérée, soit dans ce cas-ci 3.
Je crois que la seule façon de contraindre Excel 2007 à afficher une liste déroulante plus large que la colonne dans laquelle elle est insérée est par un encodage VB.
Merci de m'aider.
Bonjour
J'ai testé aussi et si l'on enregistre la liste de validation s'adapte à la largeur de la colonnes
A voir dans le fichier 2 idées
Encore une fois, le code fonctionne très bien. Merci banzaï64! Il faudra penser vous décerner une médaille, pour toutes les réponses que vous donnez et le temps, surtout, que vous y consacrez.
Petite question, en passant. Comment en êtes-vous arrivé à maîtriser aussi bien Visual Basic? Des cours? Auto-apprentissage? Un peu des deux?
J'aimerais bien accroître ma connaissance de VBA et j'hésite entre des cours ou m'acheter un bouquin, m'asseoir devant l'ordi et apprendre par moi-même. Quelle méthode me suggérez-vous, en vous basant sur votre expérience?
Bonjour
merci pour la médaille
Sinon beaucoup de pratique, de l'auto-formation , quelques livres, revues (années 80)
Avec des cours je pense que la progression serait plus rapide et plus structurée
Sinon en parallèle aux cours la pratique
Commences avec les cours de ce site
Bon courage, tu verras c'est très intéressant