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 :

Utiliser une listebox ? [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut Utiliser une listebox ?
    Bonjour,

    j'ai un classeur excel d'une vingtaine de feuilles, la première feuille est une présentation du classeur avec une vingtaine de boutons associés aux feuilles avec le thème de la feuille comme nom sur le bouton, le bouton permet d'atteindre la feuille , puis arrivé sur la feuille, j'ai un bouton pour revenir à la "page de présentation".

    Je me demande si une listBox ne serait pas mieux que les boutons sur la page de présentation, une listeBox contenant le nom des feuilles (ceux qui sont sur les onglets).
    Il y a un truc qui me semble mieux : ça devrait prendre moins de place.
    Il y a un truc qui ne va pas du tout : je ne sais pas le faire !!!
    Pire : je ne sais même pas si la listbox est le plus indiqué dans ce cas.

    Pourriez vous me mettre sur la voie ?

    Merci,

    Philippe

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Même si trouves, après coup, que ce n'est pas mieux, tu auras au moins appris à le faire. Est-ce que tu sais dessiner une listbox sur ta feuille ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    merci de ta réponse.

    Oui, le sais dessiner la listebox à partir de la boite à outil de vba (cependant je confond peur-être avec une checkbox !).
    Mais ensuite je ne sais pas affecter de code aux items de la listbox comme par exemple pour un bouton.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Quelle est ta version d'Excel ? Est-ce que tu as utilisé la boîte à outils "Formulaire" ou la boîte à outils "contrôles ActiveX" ? Quand tu mets le curseur sans cliquer sur l'icône, tu vois s'afficher le type du contrôle dans une bulle.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    J'ai excel 2002, mais je suis je le reçois d'un serveur dans un intranet et la boite à outil (des contrôles) est toute petite, une douzaine , tu peux faire apparaitre une liste de contrôles supplémentaires où il y a bien une listebox la liste est présentée comme une feuille de menu dans un restau, mais juste le nom du contrôle. Mais qu'importe je crois qu'i me faut une listbox (déroulante).

    Désolé, mais je préfère te prévenir, je m'absente une heure
    Philippe

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Pas de problème, chacun intervient sur le forum quand il est disponible. Le mieux serait que tu mettes une listbox sur un classeur vierge, que tu l'enregistres et que tu le mettes ici comme pièce jointe.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    Merci de ta patience, voici donc cette listbox
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Euh... Elle est sur quelle feuille ?
    J'ai trouvé.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    J'ai crée un un userform et je l'ai placé dessus

    je n'ai lu que la première ligne de ta réponse

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Tu peux mettre directement la listbox sur la feuille, comme je l'ai fait ou passer par un userform comme tu l'as fait. Si tu le mets sur un userform, il faut ajouter un bouton pour le faire apparaître. Si la listbox est sur la feuille, dans le module de la feuille, mets la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate()
        Me.ListBox1.ListIndex = -1
    End Sub

    qui efface la sélection précédente.

    Egalement, la listbox sur la feuille sera remplie à l'ouverture du classeur. Dans le module "ThisWorkbook" tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Workbook_Open()
        Dim sh As Worksheet
        Sheets("Accueil").ListBox1.Clear
        For Each sh In Sheets
            If sh.Name <> "Accueil" Then
                Sheets("Accueil").ListBox1.AddItem sh.Name
            End If
        Next sh
    End Sub
    Mets également dans le module de la feuille "CommandButton1 étant le nom du bouton) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
        UserForm1.Show
    End Sub
    qui affiche le userform, et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ListBox1_Click()
        Application.Goto Sheets(Me.ListBox1.Value).[A1]
    End Sub
    qui débranche au clic sur la feuille choisie (listbox sur la feuille).

    Dans le module de l'userform, mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ListBox2_Click()
        Me.Hide
        Application.Goto Sheets(Me.ListBox2.Value).[A1]
    End Sub
    qui fait le débranchement sur la feuille choisie et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub UserForm_Activate()
        Dim sh As Worksheet
        Me.ListBox2.Clear
        For Each sh In Sheets
            If sh.Name <> "Accueil" Then
                Me.ListBox2.AddItem sh.Name
            End If
        Next sh
    End Sub
    qui remplit la listbox de l'userform.

    Ca doit te paraître un peu compliqué, mais il y a deux solutions indépendantes donc tu peux éliminer celle qui est inutile. N'hésite pas à poser toutes les questions qui te viendront à l'esprit. Tout est repris dans le classeur joint.
    Fichiers attachés Fichiers attachés
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  11. #11
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    Ta réponse est tip-top, merci !
    Il faut absolument que je récupère une méthode d'initiation, il ya trop de truc bien à faire !

    Philippe

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

Discussions similaires

  1. Utilisation d'un PopUp dans une ListeBox
    Par Hellgast dans le forum C++Builder
    Réponses: 0
    Dernier message: 01/11/2009, 16h51
  2. Creer et utiliser une librairie externe à l'exécutable
    Par multani dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 06/11/2003, 10h11
  3. Macro utilisant une macro...
    Par Gogoye dans le forum C
    Réponses: 2
    Dernier message: 29/10/2003, 14h22
  4. Utiliser une librairie graphique
    Par Troopers dans le forum Linux
    Réponses: 6
    Dernier message: 22/08/2003, 11h22
  5. Réponses: 2
    Dernier message: 24/06/2003, 20h31

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