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

Excel Discussion :

Formule avec renvoie d'une plage nommée partielle


Sujet :

Excel

  1. #1
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut Formule avec renvoie d'une plage nommée partielle
    Bonjour.
    Je cherche à personnaliser une combobox construite à partir de la validation des données.
    Je possède donc une plage de données nommées, et cela fonctionne quand la source de ma combo est .
    Par contre, ce que je souhaite, c'est mettre la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     =SI(NB.SI(nom_ma_liste;0)=987;"";nom_ma_liste(987-NB.SI(nom_ma_liste;0)))
    Le 987 vient du nombre de cellule de ma plage nommée.
    Bref, la formule fonctionne si je renvoie du texte ou un nombre pour vrai et faux.
    Mais dans mon cas, je ne parviens pas à renvoyer ma plage de liste nommée partielle pour alimenter la combo.
    Ce que je souhaite réellement, c'est renvoyé uniquement les cellules qui ne contiennent pas de 0.
    Comment faire donc SVP ?
    Merci d'avance
    Cordialement
    doudouallemand
    développeur en folie cherche à ... développer encore plus

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir


    Par exemple, la feuille "Feuil1" contient les données source (par exemple Feuil1!A1:A7) , cellules contenant 0 comprises:

    dans la cellle B1 tu saisis cette formule:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(A1=0;"";SOMMEPROD((A$1:A$7<=A1)-(ESTVIDE(A$1:A$7))))
    Et tu utilises les poignées de recopie vers le bas, jusqu'en B7



    Dans la colonne C1 de la même feuille, tu saisies:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(EQUIV(MIN(B$1:B$7)+LIGNE()-LIGNE(C$1);B$1:B$7;0));"";INDEX(A$1:A$7;EQUIV(MIN(B$1:B$7)+LIGNE()-LIGNE(C$1);B$1:B$7;0)))
    et tu étires la formule vers le bas jusqu'en C7.
    cela te permet de regrouper, en tête, les cellules ne contenant pas de 0.



    Tu vas pouvoir maintenant nommer la plage de cellules dans la feuille source "Feuil1"

    Insertion
    Nom
    Définir

    "Nom dans le classeur:" PlageCible

    "Fait référence à" =Feuil1!$C$1:$C$7

    Clique sur le bouton Ajouter
    Clique sur OK pour valider


    Sélectionne la cellule qui va contenir la liste de validation.

    Menu Données
    Validation
    Onglet "options"
    Autoriser ="liste"
    coche "ignorer si vide" et "liste déroulante dans cellule"
    dans le champ "source:" tu saisies:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(PlageCible;0;0;NBVAL(PlageCible)-NB.SI(PlageCible;""))

    Désormais s'il y a des cellules contenant 0 dans la plage de cellules Feuil1!A1:A7, ils n'apparaissent plus dans la liste de validation.




    bonne soirée
    michel

  3. #3
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    Bonjour.
    Merci beaucoup pour ta réponse.
    J'ai finalement repris un morceau de celle-ci pour faire beaucoup plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(liste_nom;0;0;NBVAL(liste_nom)-NB.SI(liste_nom;0);1)
    liste_nom correspond au nom de ma plage de cellules.
    Est donc, juste avec cela dans la validation des données, c'est OK.
    Remarques le 0 en rouge que j'ai modifié et qui, du coup évite les modif que tu faisais auparavant.
    Dans tous les cas, merci à toi car je ne connaissais pas cette fonction decaler.
    doudouallemand
    développeur en folie cherche à ... développer encore plus

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/05/2015, 22h35
  2. [XL-2013] Définir une plage nommée avec le VBA
    Par skk201 dans le forum Excel
    Réponses: 2
    Dernier message: 11/03/2014, 08h22
  3. [XL-2007] Comment récupérer les valeurs d'une plage nommée avec le gestionnaire de nom
    Par Mamadou79 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/09/2010, 11h50
  4. [Toutes versions] Accéder aux éléments d'une plage nommée dans une formule
    Par TOM3110 dans le forum Excel
    Réponses: 1
    Dernier message: 13/05/2009, 12h53
  5. Pb header location avec renvoi d'une variable
    Par gazelle dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2007, 14h33

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