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 :

Excel validation de données : liste déroulante à valeurs dynamiques


Sujet :

Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 73
    Points
    73
    Par défaut Excel validation de données : liste déroulante à valeurs dynamiques
    Bonjour les amis,

    J'ai perdu énormement du temps avec un truc sous Excel qui logiquement doit pas être difficile à faire.

    En fait, pour les valeurs d'une colonne de mon fichier je veux que l'utilisateur choisisse ses valeurs dans une liste déroulante uniquement. Je veux pas qu'il saisisse une valeur supplémentaire.

    Donc j'ai utilisé le truc de : Data > Validation après avoir défini ma liste dans Insert > Name > Define

    Etant donné que les valeurs de la liste définie peuvent changer, j'ai essayé de créer une liste dynamique en utilisant la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)
    Mon Excel n'a jamais voulu accepter cette formule ! il me dit qu'il y'a une erreur sachant que mes valeurs sont bien sur la première colonne ... Je suis sous Excel 2002.

    Ensuite j'ai cherché un moyen de faire cela en code VBA. C'est à dire définir une liste statique normal et ensuite à l'aide d'un petit macro lancé à l'ouverture du fichier, je mis à jour les valeurs de cette liste. J'arrive pas à le faire !

    Un help sera vraiment le bienvenue :-(

    Amicalement.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 55
    Points : 73
    Points
    73
    Par défaut
    ta liste doit avoir un nom
    ce nom est saisie dans la liste des valeurs
    une insertion augmente automatiquement la taille de la liste

    1) definir un nom (exemple service pour la liste $A$8 de la feuille nomfeuille
    nom : service
    fait reference a : =nomfeuille!$A$8
    2) si tu insere une celulle en A3 par exemple la reference de la liste changera automatiquement

    3) dans validation des donnees
    autoriser : liste
    source : =service

    bon courage
    gerard

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour fadjerx,

    Ta formule OFFSET..., c'est bien dans la référence de la plage nommée que tu l'a utilisée?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 73
    Points
    73
    Par défaut
    Salut Pierre,

    Oui pour la formule :

    =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)

    j'utilise dans la feuille nomée Sheet1. C'était ça ta question ?

    Amicalement.

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par fadjerx Voir le message
    ...C'était ça ta question ?

    Amicalement.
    Non. Je voulais savoir où tu saisissais cette formule, et accessoirement, ce que te renvoyait Excel comme erreur.

    Il me semble qu'elle est correcte, et donc que si tu nommes une plage en utilisant cette formule comme référence lors de la création de la plage nommée, tu devrais pouvoir utiliser la plage nommée comme source de ta liste de validation.

    Peux-tu préciser?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 73
    Points
    73
    Par défaut
    Je fais : Insert > Name > Define et ensuite je donne un nom à ma liste et dans le champ Refers To je saisis ma formule. C'est comme ça qu'il faut faire ?

    Cette liste je l'utilise après dans Data > Validation

    Pour le message d'erreur que j'ais : The formula you typed contains an error ... un message générique qui aide très peu !

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Tout m'a l'air correct. Je n'ai pas Excel en anglais mais la syntaxe avec les virgules me semble correcte.

    Question: A quel moment as-tu le message d'erreur? A la création de la plage nommée ou lors de la tentative d'utilisation dans la liste de validation?

    Si c'est dans la liste de validation, tu mets bien le signe "=" devant le nom de la plage?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 73
    Points
    73
    Par défaut
    J'ai le message d'erreur à la création de la plage nommée, et j'utilise bien le =

    Je viens de créer un nouveau fichier pour être sûr mais c le même probleme :-(

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par fadjerx Voir le message
    J'ai le message d'erreur à la création de la plage nommée, et j'utilise bien le =

    Je viens de créer un nouveau fichier pour être sûr mais c le même probleme :-(
    Es-tu certain qu'il faut utiliser des virgules pour séparer les paramètres, ou bien est-ce comme ne français, avec des points-virgule?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 79
    Points : 73
    Points
    73
    Par défaut
    Oui, la formule je l'ai copié d'un site anglais et j'ai un Excel en anglais.

  11. #11
    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

    en supposant que les données sont dans la colonne A de la feuille Sheet1:

    menu Insertion/Nom/Définir
    Dans le champ "Nom dans le classeur", tu saisies par exemple "NomTest".
    Dans le champ "Fait référence à:" saisie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =OFFSET(Sheet1!$A$1,0,0,SUMPRODUCT((Sheet1!$A$1:$A$1000<>"")*1))
    Clique sur le bouton OK pour valider.

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

    ensuite, menu Données/Validation
    dans le champ "Autoriser:", sélectionne "Liste"
    Dans le champ Source tu saisies: =NomTest
    Clique sur le bouton OK pour valider.


    bon après midi
    michel

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Salut Michel

    Tu peux expliquer pourquoi tu utiliser SUMPRODUCT à l'intérieur de OFFSET?

    Personnellement, j'utilise, en français, la formule OFFSET comme décrite par fadjerx, avec COUNTA et je n'ai jamais rencontré de problèmes...

    Citation Envoyé par fadjerx Voir le message
    Salut Pierre,

    Oui pour la formule :

    =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)

    j'utilise dans la feuille nomée Sheet1. C'était ça ta question ?

    Amicalement.
    Tiens, par hasard, en y réfléchissant...

    Il y a au moins une cellule non vide en A? Parce si la colonne A est entièrement vide, tu auras forcément une erreur, puisque tu demandes à DECALER de renvoyer une plage de 0 lignes.

    Pour pouvoir utiliser ta fonction, il faut au moins qu'il y ait une donnée en A1 (au moins pour les tests et la construction de ton classeur. Si tu vides A1 par la suite, ta liste déroulante sera vide mais ne plantera pas...)

  13. #13
    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
    bonjour Pierre

    Salut Michel

    Tu peux expliquer pourquoi tu utiliser SUMPRODUCT à l'intérieur de OFFSET?
    Une question d'habitude ... ;o)
    Le résultat est identique à CountA

    bonne soirée
    michel

Discussions similaires

  1. [AC-2007] saisie de données - liste déroulante à valeurs variables
    Par baptistehgc dans le forum Access
    Réponses: 26
    Dernier message: 27/07/2012, 11h24
  2. [EXCEL] Validation des données saisies - nouvelle Question :-)
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 39
    Dernier message: 29/11/2006, 13h28
  3. [Excel] Validation de données
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/12/2005, 19h35
  4. Zone de liste déroulante, valeur de requete et fixe
    Par Fritzoune dans le forum Access
    Réponses: 4
    Dernier message: 12/10/2005, 17h21

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