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 nom des feuilles sauf deux


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Liste nom des feuilles sauf deux
    Bonjour,

    Dans un UF j'ai une liste déroulante dans laquelle s'affiche le nom des feuilles du classeur et cela fonctionne bien.
    Cependant j'aimerai que les feuilles "Intro" et "Aide" n'entrent pas dans cette liste.

    Comment dois-faire ? Merci par avance

    Voici le code qui alimente la Combo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub UserForm_Initialize()
    Dim NbreFeuille As Long
    NbreFeuille = Workbooks("SUIVI_DES_ERP.xls").Worksheets.Count
    For I = 1 To NbreFeuille
    Me.CmbNomOnglets.AddItem (Workbooks("SUIVI_DES_ERP.xls").Sheets(I).Name)
    Next I
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour,

    Une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()
        Dim ws As Worksheet
        For Each ws In Workbooks("SUIVI_DES_ERP.xls").Sheets
            If (ws.Name <> "Intro") And (ws.Name <> "Aide") Then
                CmbNomOnglets.AddItem ws.Name
            End If
        Next ws
    End Sub
    Rmq : Si le classeur courant est SUIVI_DES_ERP.xls, il est inutile de précisé le nom du classeur ligne 3.
    On peut l'écrire simplement

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 389
    Par défaut
    Bonjour,

    Dans la boucle i il suffit d'ajouter une condition disant que si le nom de la feuille est "Intro" ou "Aide" on ne fait rien

    JP

  4. #4
    Invité
    Invité(e)
    Par défaut Bonjour, test ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()
    Dim I As Long
    Dim WB As Workbook
    Set WB = Workbooks("SUIVI_DES_ERP.xls")  ' .Worksheets.Count
    For I = 1 To WB.Worksheets.Count
        If WB.Worksheets(I).Name <> "Intro" And WB.Worksheets(I).Name <> "Aide" Then Me.CmbNomOnglets.AddItem WB.Worksheets(I).Name
    Next I
    End Sub

  5. #5
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour René,

    par exemple comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For I = 1 To NbreFeuille
    Select case trim(upper(Sheets(I).Name)))
             case "INTRO", "AIDE"
             case else
    Me.CmbNomOnglets.AddItem (Workbooks("SUIVI_DES_ERP.xls").Sheets(I).Name)
    end select
    Next I
    Bonne journée.

    ------Edit-------
    gasp, grillé par Robert.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Merci à tous pour votre participation et votre aide.

    J'ai pris la solution de rdurupt.

    Encore mille mercis

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

Discussions similaires

  1. [XL-2010] liste déroulante dans userform avec les noms des feuilles
    Par sk8hunter dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2015, 00h28
  2. liste déroulante avec les noms des feuilles d'un classeur fermé
    Par winclass dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2008, 22h39
  3. Créer une liste à partir des noms des feuilles
    Par BOU59000 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 19/08/2008, 18h38
  4. Liste des noms des feuilles d'un classeur
    Par marc56 dans le forum Excel
    Réponses: 10
    Dernier message: 22/09/2007, 15h49
  5. Comment remplir un ComboBox avec le nom des feuilles Excel ?
    Par libracom dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/06/2005, 15h14

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