IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Liste déroulante sans ligne vide [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut Liste déroulante sans ligne vide
    Bonjour,

    je cherche depuis un bon moment à limiter la partie visible de mes listes de choix aux lignes non vides, sans succès

    j'ai en prévision d'évolution des plages importantes de liste de choix, dans Excel je n'arrive pas à limiter aux lignes non vides, d'autant que c'est la dernière ligne qui est active dans la liste et il faut remonter toutes les lignes blanches pour atteindre les données renseignées

    Je voudrai dans excel ou par macro limiter la liste aux lignes non vides ou autre solution, positionner le ligne active sur la première ligne renseignée de la liste
    Il ne savait pas que c'était impossible, donc il l' a fait...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par retraite83 Voir le message
    Bonjour,

    Peut-être là, chez Jacques BOISGONTIER : donneesvalidation.htm#SansVide

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Si c'est juste pour ne pas prendre en compte les lignes vides qui se trouvent sous ta liste, tu as la formule :
    =DECALER($A$1;0;0;NBVAL(A:A))
    qui permet une liste dynamique sans prendre en compte les cellules vides sous la liste (ici, liste en colonne A depuis A1)

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    La solution avec DECALER le semble me convenir, mais je ne vois pas comment l'intégrer

    J'ai dans la cellule J11 dans ma feuille1 une liste définie par

    =Param!$A$2:$A$9

    comment intégrer la formule du genre :

    =DECALER($A$1;0;0;NBVAL(A:A))
    avec la liste déroulante?
    merci de m'éclairer
    Il ne savait pas que c'était impossible, donc il l' a fait...

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Merci pour ces docs très intéressantes (riche pour mon niveau…)

    j'ai donc appliqué :

    Les données de ma liste sont de A2 à A30 de la feuille Param

    Dans la cellule où se trouve la liste déroulante j'ai donc entré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =DECALER(Param!$A$2;0;0;NBVAL($A:$A)-1)
    seule la donnée dans Param$A$2 s'affiche dans ma liste

    J'ai essayé de voir dans la doc de la fonction DECALER, sans resultat

    Autre question : comment faire pour limiter la liste à la plage $A$2 à $A$30
    Il ne savait pas que c'était impossible, donc il l' a fait...

  6. #6
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Après de multiples essais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =DECALER(Param!$A$2;0;0;NBVAL($A:$A)-1)
    je n'ai qu'une donnée dans la liste (la première)

    il faudrait en fait quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =DECALER(Param!$A$2;0;0;NBVAL(Param!$A:Param!$A)-1)
    mais Excel dit que c'est invalide

    ou encore mieux pour limiter la plage de la liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =DECALER(Param!$A$2;0;0;NBVAL(Param!$A$2:Param!$A$50)-1)
    Mais là aussi Excel dit que c'est invalide
    Il ne savait pas que c'était impossible, donc il l' a fait...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par retraite83 Voir le message
    Comment as-tu nommé ta zone dans le gestionnaire de noms ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(Param!$A$2;0;0;NBVAL(Param!$A:Param!$A)-1)
    Je pense que tu essaies de mettre ta formule directement dans ta cellule de validation. Cela ne peut pas marcher.

    J'ai mis un exemple ce matin dans ce message : recherche-2-variables

  8. #8
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Oui en passant par le Gestionnaire de noms ça marche parfaitement, voilà le résultat final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =DECALER(Param!$g$10;;;NBVAL(Param!$g$10:$g$200)-1)
    La liste déroulante est définie des cellules de Param G10 à G200 à partir de G10

    merci
    Il ne savait pas que c'était impossible, donc il l' a fait...

  9. #9
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    Bonjour,

    voilà la formule qui permet d'avoir une liste déroulante limitée aux lignes non vides à la fin de G10 à G200
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =DECALER(Param!$g$10;;;NBVAL(Param!$g$10:$g$200))
    Je voudrai améliorer cette liste et j'ai besoin d'avoir une ligne vide (au début si possible ou à la fin) pour servir d'effacement d'une cellule

    En effet avec le code je peux modifier par une autre valeur mais pas rien (effacement)

    comment faire ? J'ai tenté par mal de choses sans succès

    Une autre solution est de laisser une formule sans DECALER

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =Param!$g$10:Param!g$200
    Mais dans ce cas les lignes sont conservées, avec l'inconvénient que la liste commence par la fin et il faut remonter toutes les lignes blanches pour accèder à la première donnée.

    Ma liste comprend pour l'instant des données de G0 à G45 et des lignes blanches de G46 à G200
    Il ne savait pas que c'était impossible, donc il l' a fait...

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par retraite83 Voir le message
    Bonjour,

    Modifier la formule en mettant +1 au bout et en G10 mettre une cellule vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =DECALER(Param!$g$10;;;NBVAL(Param!$g$10:$g$200)+1)

  11. #11
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 233
    Points : 462
    Points
    462
    Par défaut
    cela marche très bien avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      =DECALER(Param!$g$10;;;NBVAL(Param!$g$10:$g$200)+1)
    J'ai besoin d'une ligne blanche mais le problème c'est qu'une ligne vide au début perturbe mes autres traitements…

    En fait je voudrai la liste et la ligne +1 dynamiquement blanche (équivalent barre d'espace et non pas "suppr")

    d'ailleurs en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =Param!$g$10:Param!$g$200
    la liste est parfaite, mais les lignes blanches ne sont pas éliminées et le problème c'est que la liste déroulante est présentée à partir de la fin (beaucoup de lignes blanches à remonter)
    Il ne savait pas que c'était impossible, donc il l' a fait...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Recopier une liste sans lignes vides
    Par filsdepub dans le forum Excel
    Réponses: 3
    Dernier message: 09/12/2014, 11h11
  2. [XL-MAC 2011] Remplissage Zone de liste déroulante sans doublons & non vides via VBA
    Par SuperKiwi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2014, 20h29
  3. formule pour recopier une liste sans ligne vide
    Par ANGLIQUESOIG dans le forum Excel
    Réponses: 2
    Dernier message: 14/03/2013, 11h13
  4. [XL-2007] Liste déroulante sans vides
    Par apt dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/02/2012, 00h12
  5. Réponses: 2
    Dernier message: 22/09/2009, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo