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 de choix dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Par défaut Liste de choix dynamique
    Salut à tous!
    J'ai dans une feuille un ensemble de paramètres organisés en colonne. ex Nom, Prénom, Taille du sexe
    Je souhaiterais pouvoir dans une autre feuille afficher une liste déroulante qui listerai de manière dynamique l'ensemble des paramètres de la feuille de base.
    J'ai regardé du coté de la "liste de choix" mais je souhaiterai faire cela exclusivement en macro.
    J'ai pour le moment stocké les paramètres dans des tableaux à une dimension.
    Voilà à quoi ca ressemble

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    NombreNoms = 0: i =0
    Do While (Sheets("Paramètres").cells(2+i,2).value <> VIDE)
          NombreNoms = NombreNoms +1
          i=i+1
    Loop
     
    Redim Noms(NombreNoms)
    après je bloque...

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Bonjour f0nskar, bienvenue sur le forum.
    Intéressant ton métier... Tu fais quoi
    Citation Envoyé par f0nskar
    Salut à tous!
    J'ai dans une feuille un ensemble de paramètres organisés en colonne. ex Nom, Prénom, Taille du sexe
    Déjà, tu peux corriger ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    NombreNoms = 0: i =0
    Do While Sheets("Paramètres").cells(2+i,2).value <> Empty
          NombreNoms = NombreNoms +1
          i = i + 1 'Ce n'est pas du c
    Loop
     
    Redim Noms(NombreNoms)
    Tu ne dis pas ce qui te fait "caler"...
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Par défaut
    Citation Envoyé par ouskel'n'or
    Bonjour f0nskar, bienvenue sur le forum.
    Intéressant ton métier... Tu fais quoi

    Déjà, tu peux corriger ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    NombreNoms = 0: i =0
    Do While Sheets("Paramètres").cells(2+i,2).value <> Empty
          NombreNoms = NombreNoms +1
          i = i + 1 'Ce n'est pas du c
    Loop
     
    Redim Noms(NombreNoms)
    Tu ne dis pas ce qui te fait "caler"...
    A+
    Hmm la nature du contenu est confidentielle.
    J'avais crée une chaine vide s'appelant vide mais avec empty c'est plus simple.
    Mon souci c'est de faire de ce tableau une liste déroulante qui s'afficherait dans une cellule. et je voudrai recuperer le numéro de la ligne selectionnée.
    Ex de liste : Jean-Mouloud
    Bernard-Jérome
    René-Charles
    Marie-Gersande

    Si je clique sur Marie-Gersande, ca me renvoie la valeur 4 par exemple

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Par défaut
    Bon je reviens a la charge.
    J'ai tenté d'utiliser With Selection.Validation avec les paramètres qui vont bien mais je n'arrive pas a utiliser les données de mon tableau.
    Formula1:=Noms me renvoie une erreur.
    Suis-je obligé de concaténer l'ensemble des noms et le separer par des virgules pour que ca marche?
    Comment puis-je recuperer le numéro de la ligne selectionnée?

  5. #5
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    bonjour

    dis moi, pourquoi ne pas utiliser directement le menu insertion/nom/definir, cela serait beaucoup plus simple tu ne crois pas ?

    noms----> Formule : =DECALER(Paramètres!$B$2;;;nbval(Paramètres!$B:$B)-1)

    avec cette formule tu ajoutes ou tu supprimes des noms dans cette colonne, il seront pris automatiquement en compte

    @ te lire

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Par défaut
    Citation Envoyé par wilfried_42
    bonjour

    dis moi, pourquoi ne pas utiliser directement le menu insertion/nom/definir, cela serait beaucoup plus simple tu ne crois pas ?

    noms----> Formule : =DECALER(Paramètres!$B$2;;;nbval(Paramètres!$B:$B)-1)

    avec cette formule tu ajoutes ou tu supprimes des noms dans cette colonne, il seront pris automatiquement en compte

    @ te lire
    Merci de ta réponse wilfired.
    Il est vrai que cette solution serait la plus simple mais j'aimerai faire ça en macro.
    je persiste et je signe :p
    J'ai d'un coté les données (dans une colonne d'une feuille ou dans un tableau) et de l'autre j'arrive a afficher une liste déroulante en macro avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Jean-David, Georges-Simon, Benoit-Ghislain"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
    End With
    Seulement Formula prend comme paramètres du L1C1, du LC ou une chaine de caractères comprennant les données séparées par des virgules.
    Dois-je utiliser un UserForm?

Discussions similaires

  1. [XL-2007] Liste de choix dynamique
    Par Tetaye dans le forum Excel
    Réponses: 3
    Dernier message: 08/04/2014, 16h01
  2. Script liste de choix dynamique dans un formulaire
    Par Carlycox dans le forum APIs Google
    Réponses: 1
    Dernier message: 26/12/2013, 17h55
  3. Formulaire : liste multiple choix "dynamiques"
    Par MasterChief78 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 15/08/2009, 08h40
  4. Liste de choix dynamique dans tableau dynamique
    Par rvm31 dans le forum Langage
    Réponses: 4
    Dernier message: 13/05/2009, 17h14
  5. Réponses: 10
    Dernier message: 04/05/2004, 16h00

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