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 :

Appeler une feuille excel grace à une Listbox


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Appeler une feuille excel grace à une Listbox
    Bonjour, étant débutant en vba, je ne sais pas trop comment me sortir de ce problème:
    je souhaite répertorier dans une listbox les noms des feuilles du classeur. la listbox serait appelé à partir de la feuille1 du classeur. le but est de pouvoir afficher la feuille de mon choix en la selectionnant dans la listbox. (mon classeur comporterait à terme un tres grand nombre de feuilles, d'ou l'utilité de choisir la feuille au début). j'ai déja fait un peu de code mais pas tres convaincant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ListBox1_Click()
     
    Dim nomfeuille As String
    nomfeuille.Value = ListBox1.Value
    Sheets("nomfeuille").Select
    End Sub
    avec comme source de la listbox les noms des feuille répertoriés en feuille 1.

    Merci d'avance

  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
    Points : 15 546
    Points
    15 546
    Par défaut
    Hello,

    Plutôt que prendre
    Private Sub ListBox1_Click(), prends Sub ListBox1_KeyUp
    Te permet un clic dans la liste et d'assurer ta sélection :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ListBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        NomFeuil = Worksheets("Feuil1").ListBox1.List(ListBox1.ListIndex)
        Worksheets(NomFeuil).Select
    End Sub
    Cela devrait donner ce que tu veux. Tu nous dis

    A+

    Place ce code dans le code de ta feuille

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut thanks
    merci,mais je n ai pas réussi à faire fonctionner le code que vous m'avez donné. j ai en revanche trouvé la solution dans un bouquin.

    Merci quand meme, et bravo pour la réactivité!!

    A+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonsoir,
    L'inconvénient de ce que tu veux faire, c'est lorsque une autre feuille sera active, tu ne verras plus ta listBox.
    Alors je te propose ceci
    Créer dans le menu Affichage, un sous-menu nommé ici Mon Menu
    Dans un Module.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    Sub AjouterElementMenu()
    Dim ViewMenu As CommandBarPopup
    Dim NewMenuItem As CommandBarButton
     
    'Supprimer le menu s'il existe déjà
    Call DeleteMenuItem
     
    'Trouver le Menu Affichage
    Set ViewMenu = CommandBars(1).Controls("Affichage")
    If ViewMenu Is Nothing Then
        MsgBox "Impossible d'ajouter l'élément de menu !"
        Exit Sub
    Else
        Set NewMenuItem = ViewMenu.Controls.Add _
        (Type:=msoControlButton)
    With NewMenuItem
        .Caption = "&Mon menu"
        .OnAction = "AficheFeuille"
    End With
    End If
    End Sub
     
    Sub AficheFeuille()
    UserForm1.Show
    End Sub
     
    Sub DeleteMenuItem()
    On Error Resume Next
    CommandBars(1).Controls("Affichage").Controls("Mon menu").Delete
    End Sub
    Dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Workbook_Open()
    AjouterElementMenu
    End Sub
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    DeleteMenuItem
    End Sub
    Tu Crées ensuite un UserForm et tu place une ListBox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Option Explicit
    Public OriginalSheet As Object
     
    Private Sub UserForm_Initialize()
    Dim SheetData() As String
    Dim ShtNum As Integer
    Dim ShtCnt As Integer
    Dim Sht As Object
    Dim LisPost As Integer
     
    Set OriginalSheet = ActiveSheet
    ShtCnt = ActiveWorkbook.Sheets.Count
    ReDim SheetData(1 To ShtCnt, 1 To 4)
     ShtNum = 1
     For Each Sht In ActiveWorkbook.Sheets
        If Sht.Name = ActiveSheet.Name Then _
        LisPost = ShtNum - 1
    SheetData(ShtNum, 1) = Sht.Name
    Select Case TypeName(Sht)
        Case "WorkSheet"
        SheetData(ShtNum, 2) = "Feuil"
        SheetData(ShtNum, 3) = Application.CountA(Sht.Cells)
    End Select
       ShtNum = ShtNum + 1
        Next Sht
    With ListBox1
        .ColumnWidths = "30 pt;30 pt; 40 pt;50 pt"
        .List = SheetData
        .ListIndex = LisPost
    End With
    End Sub
     
    Private Sub ListBox1_Click()
        Sheets(ListBox1.Value).Activate
    End Sub
    Tu enregistres ensuite ton classeur et tu l'ouvre de nouveau, tu verras dans le menu Affichage ton sous-menu appelé Mon Menu.

    Lorsque tu cliqueras sur Mon Menu, la UserForm apparaittra, tu n'auras qu'a cliquer sur le nom d'une feuille pour l'activer.

    jpleroisse

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut Re: thanks
    Citation Envoyé par eltess
    merci,mais je n ai pas réussi à faire fonctionner le code que vous m'avez donné. j ai en revanche trouvé la solution dans un bouquin.

    Merci quand meme, et bravo pour la réactivité!!

    A+
    eltess... pense à rajouter le tag

    ?


  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci pour le code ca tourne!. la dernière partie est ce que j ai trouvé dans un bouquin.

    A+

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

Discussions similaires

  1. Sélection d'une feuille excel avec une listbox
    Par felibelle dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2022, 17h27
  2. reprise : Sélection d'une feuille excel avec une listbox
    Par philippe6 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/09/2013, 11h41
  3. [XL-2007] copier une feuille excel d'une instance excel à une autre
    Par marcelisa2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2012, 23h44
  4. Faire appel à un autre fichier excel depuis une feuille excel
    Par dammswell dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/10/2009, 09h24
  5. Récupérer le numéro de ligne d'une feuille excel dans un listbox
    Par Dream Master dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/06/2007, 09h16

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