Rechercher : dans
Par :

Excel ajustement automatique d'une plage

Dernière réponse le 10 jan 2008 à 15:52:39 Shadowshen, le 10 jan 2008 à 10:55:16 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 6.0

1

Kobaya, le 10 jan 2008 à 15:42:26

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

A+,
Kobaya.

Répondre à Kobaya

2

 Shadowshen, le 10 jan 2008 à 15:52:39

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

Répondre à Shadowshen
Collection CommentÇaMarche.net