Effacer cellule vide dans une liste déroulante

jiji -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai vu plusieurs conversation à ce sujet, mais je n'arrive pas à trouver exactement ce que je désire.

J'aimerais faire une liste déroulante à partir d'une plage de cellules en excluant les cellules vides. Les cases remplies ne sont cependant pas consécutives.

Comme le fichier sera utilisé par des personnes ayant des connaissances limitées sur Excel, je ne veux pas avoir à faire de tri sur ma plage ou à utiliser des cellules supplémentaires masquées. Les modifications éventuelles à la plage de donnée doivent s'ajouter automatiquement à la liste déroulante.

En vous remerciant à l'avance pour votre aide!

3 réponses

  1. mick54160 Messages postés 13 Statut Membre 1
     
    bonjour,
    au lieu de choisir des cellule pour votre liste déroulante choisissez directement la lettre en haut ou taper cette formule dans fait reference à:

    =Feuil1!$F:$F
    0
    1. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      Cela ne résout absolument pas son problème ... Il ne veut pas les cellules vides !
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Il faut mettre en oeuvre une colonne supplémentaire pour créer une liste sans cellule vide.
    exemple tes données TEXTE sont en colonne A de A2 à A50
    cette formule matricielle à coller en B2 par exemple qu'il faudra incrémenter vers le bas jusqu'à la ligne 50
    Avant d'incrémenter il convient de déclarer la matricielle
    1/ coller la formule
    2/si la formule est active, sinon clic sur la cellule contenant la formule et clic sur la formule dans la barre des formules ou encore double clic sur la cellule contenant la formule
    3/en même temps clic sur les 3 touches du clavier Ctrl, Shift (touche majuscule) et Entrée
    si tu fais bien la formule se placera entre {} comme ceci {=ta formule}

    =SI(LIGNES($2:2)<=NBVAL($A$2:$A$50);INDEX(($A$2:$A$50;EQUIV(LIGNES($2:2);NB.SI(($A$2:$A$50;"<="& ($A$2:$A$50);0));"")
    mais il serait plus judicieux de nommer la plage A2:A50 exemple la nommer List la formule se simplifie à

    =SI(LIGNES($2:2)<=NBVAL(List);INDEX(List;EQUIV(LIGNES($2:2);NB.SI(List;"<="&List);0));"")
    une fois la matricielle déclarée elle donnera
    {=SI(LIGNES($2:2)<=NBVAL(List);INDEX(List;EQUIV(LIGNES($2:2);NB.SI(List;"<="&List);0));"")}

    Pour terminer créer la liste de validation avec cette formule

    =DECALER($B$2;;;SOMME(N($B$2:$B$50<>"")))
    si ta plage contient des valeurs numériques il faudra changer la formule

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0