Excel ajustement automatique d'une plage

Résolu/Fermé
Shadowshen Messages postés 10 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 18 février 2008 - 10 janv. 2008 à 10:55
Shadowshen Messages postés 10 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 18 février 2008 - 10 janv. 2008 à 15:52
Bonjour à tous,

Je travail actuellement sur un projet et rencontre une petite difficulté avec Excel.

J’ai créé une application qui permet par le biais d’une liste déroulante avec macro d’aller rechercher des informations dans une base de données.

Liste déroulante contenant les noms et prénoms
Macro ; ne fait que insérer des « INDEX » et « SVRECHERCHE » dans différentes cellules

Mon problème concerne le champ de cellules défini et attribué à la liste déroulante. En effet, si par exemple je détermine ce champ entre A3 et A14. Seuls les noms contenus entre ces deux cellules seront affichés. Si quelqu’un ajoute des noms, ils n’y seront pas. Et si je prévois un ajout de noms et que je redéfini mon champ entre A3 et A50 par exemple. Dans ma liste déroulante il y aura un blanc à la suite des noms. Un blanc de 36 lignes.

J’ai rapidement recréé un exemple pour vous montrer en image :

http://www.shadowshen.com/shadexcel1.jpg Screen de la feuille principale avec la liste déroulante
http://www.shadowshen.com/shadexcel2.jpg Screen de la 2e feuille avec la base de données

Afin d’éviter de devoir redéfinir la plage des cellules à utiliser pour la liste déroulante à chaque ajout ou suppression de noms, je cherche un moyen d’automatiser ce processus. (Le programme défini automatiquement la plage de données suivant si les cellules contiennent ou non des données.)

Est-ce possible ? Si oui, comment ? Je remercie infiniment ceux qui prendront le temps de lire ma requête et tenteront d’y répondre.


Cordialement, Shadowshen
A voir également:

2 réponses

Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214
10 janv. 2008 à 15:42
salut Shadowshen, et Bonne Année 2008 !

L'astuce, c'est de définir un nom de cellule qui contienne, non pas une plage de cellules, mais la fonction suivante :
=OFFSET(Sheet1!$A$1;;;COUNTA(Sheet1!$A:$A))
ou en bon français
=DECALER(Sheet1!$A$1;;;NBVAL(Sheet1!$A:$A))

L'astuce figure sur un site que je te recommande, Excelabo.net :
http://www.excelabo.net/excel/listes.php#listesdynamiques
0
Shadowshen Messages postés 10 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 18 février 2008
10 janv. 2008 à 15:52
Hello Kobaya et Bonne Année 2008 à toi aussi !

Super, ton astuce marche très bien et je t'en remercie infiniement ! Me reste plus qu'a trouver la traduction en allemand (Excel De). Ce ne sera pas trop difficile ;)

Je te remercie également pour le site. Si je rencontre d'autres problèmes je m'y refererai.


Cordiales salutations, Shadowshen
0