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] Optimisation, propreté? [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut [Liste déroulante] Optimisation, propreté?
    Bonjour à tous,

    Débutant assez total en VBA Excel, je souhaite vous demander comment vous envisageriez de résoudre ce problème :

    je dois remplir une liste déroulante à l'aide d'une suite de cellules dont la taille peut varier, située dans une autre feuille. Le plus sage serait-il de procéder :

    - créer un tableau de Strings, dimensionné à l'aide d'un redim après avoir compté la taille de la liste de cellules, puis remplis cellule après cellule (donc deux boucles, ce que je pense pas forcément optimisé)
    -utiliser un array (que je connais pas, et que je ne sais pas si on peut remplir une liste déroulante avec un array)

    J'ai hésité à mettre ce thread dans conception... désolé s'il est mal place.

    merci

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    Il manque quelques informations...

    Qu'entends tu par liste deroulante?
    une liste de validation (menu données validation)
    une liste de la boite a outils
    une liste de la barre de formulaire
    une liste dans un userform

    a te lire...
    ++
    Minick

  3. #3
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    il s'agit d'une liste de la boîte à outil

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Re,

    Tu peux par exemple essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").ComboBox1.List = Sheets("Feuil2").Range("A1:A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row).Value
    La liste est sur la feuil1 et les données dans la colonne A de la feuil2
    (combobox1 sera peut etre a adapter au nom de ta liste)
    ++
    Minick

  5. #5
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    ok, merci,

    sans vouloir abuser je ne comprends pas ta fonction, et elle me renvoie une erreur 1004. Je n'y bite rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LstType.ListFillRange = Sheets("Type_arret").Range("TY_DebutlisteType" & Sheets("Type_arret").Range("A65536").End(xlUp).Row).Value
    pourrais-tu m'expliquer le rôle du &, celui de mettre un range dans un range, et le rôle de End(xlUp), merci

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    re,

    Attention j'ai utilise List et pas ListFillRange

    Ensuite apparemment tu utilises une cellule nommee pour la 1ere valeur de ta liste donc il faut essayer comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    With Sheets("Type_arret")
        LstType.List = .range(.Range("TY_DebutlisteType"), .Range("TY_DebutlisteType").End(xlDown)).Value
    End With
    Le xlup est devenu un xldown c'est pour rechercher la dernier cellule non vide de ta liste
    (Cela suppose que la liste n'a pas de cellule vide)
    Les & qui ont disparu ici servent a concaterner des chaines de caractere
    par exemple pour:
    Message = "Salut " & "crashtib"

    Message renverra "Salut crashtib"
    ++
    Minick

  7. #7
    Membre actif Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Points : 204
    Points
    204
    Par défaut
    ok, super, merci pour ces explications claires.

    quand je vois que list et listfillrange ne sont pas du tout la même, je pense qu'un peu de doc me ferait du bien, mais impossible de trouver sur le net.

    en fait je rechercherait l'équivalent de al javadoc en VBA. Saurais-tu où je pourrais trouver ça? (sachant que la sacro-sainte aide excel n'est pas installé sur mon poste)

    merci

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    C'est vrai que l'aide excel te serait d'un grand secours...

    Sinon, il y a de nombreux tuto sur ce site ou encore directement chez microsoft
    ++
    Minick

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

Discussions similaires

  1. [AC-2013] Optimisation d'une cascade de listes déroulantes
    Par rag83 dans le forum VBA Access
    Réponses: 28
    Dernier message: 01/02/2015, 18h43
  2. Optimiser l'exécution d'une liste déroulante
    Par dark_geek dans le forum ASP
    Réponses: 2
    Dernier message: 21/05/2009, 03h09
  3. [03 adp] Optimisation liste déroulante
    Par cbleas dans le forum IHM
    Réponses: 6
    Dernier message: 27/10/2008, 12h29
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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