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 :

UserForm liste déroulante - mise à jour


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 324
    Points : 120
    Points
    120
    Par défaut UserForm liste déroulante - mise à jour
    Bonjour,

    J'ai UserForm avec liste déroulante dans laquelle apparaissent les noms des onglets du classeur. "MENU", "DK"

    code :
    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
    Private Sub UserForm_Initialize()
     Call ComboBox1_Initialize
    End Sub
     
    Private Sub ComboBox1_Change()
      ThisWorkbook.Worksheets(ComboBox1.Value).Activate
    End Sub
     
    Private Sub ComboBox1_Initialize()
    Dim wsh As Worksheet
      ComboBox1.Clear
      For Each wsh In ThisWorkbook.Worksheets
        ComboBox1.AddItem wsh.Name
      Next wsh
    End Sub
    Comment faire pour :
    1° Si l'on rajoute ou supprime des feuilles, la mise à jour se fasse dans la liste déroulante ?

    2° Lorque je choisis une feuillle (ex. "MENU") UNIQUEMENT cette feuille apparaisse à l'écran (toues les feuilles doivent toujours être dans la liste déroulante) ?

    Merci

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Pour avoir une liste à jour, tu pourrais ré-initialiser ta liste déroulante chaque fois que l'événement
    est déclenché.
    Cordialement

    Docmarti.

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    1°) la mise à jour se fera lors de l'initialisation de la Userform

    2°) c'est ce que fait ton code dans l'évenement ComboBox1_Change

    J'ai du mal à cerner ton problème car ton code fait déjà ce que tu souhaites
    Jérôme

  4. #4
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    Si tu supprimer ou ajouter une feuille quand tu ouvres ton userform tu auras la liste exacte des feuilles presentes dans le classeur vu que tu scannes Les feuilles pour le mettre dans combobox.
    kk chose dans le gout pour la seconde question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Private Sub ComboBox1_Change()
    If Combobox1.listindex<>-1 then
    	Dim sh as variant
    	For each sh in sheets
    		sh.visible= false			
    	next
    	ActiveWorkbook.sheets(combobox1.value).visible = true
            ActiveWorkbook.sheets(combobox1.value).select
    End if
     
    End Sub

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    324
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 324
    Points : 120
    Points
    120
    Par défaut
    Merci, je vais voir tout cela

  6. #6
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour à tous,

    Je me permets une incursion car masquer toutes les feuilles sauf celle choisie à plusieurs impacts (D'ailleurs, (désolé) Ashireon, ton code ne peut pas fonctionner car il faut au moins une feuille visible)

    De plus, ça t'oblige à prévoir le code de suppression par UF pour les mêmes raisons (je veux dire sélectionner la feuille que tu veux supprimer pour la supprimer entrainera une erreur)

    Sans quoi, pour gérer la sélection de la feuille et le 'masquage' des autres j'aurais plutôt fait comme ceci (tout le code dans l'UF)

    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
    Private Sub UserForm_Initialize()
    Dim Ws As Worksheet
     
    For Each Ws In ActiveWorkbook.Sheets
        Me.ComboBox1.AddItem Ws.Name
    Next Ws
     
    End Sub
     
    Private Sub ComboBox1_change()
    Dim Ws As Worksheet
    Dim WsSelected As String
     
    WsSelected = Me.ComboBox1.Value
    Sheets(WsSelected).Visible = xlSheetVisible
     
    For Each Ws In ActiveWorkbook.Sheets
        If Ws.Name <> WsSelected Then
            Ws.Visible = xlSheetVeryHidden
        End If
    Next Ws
     
    End Sub
    Dernière remarque, pense à renommer tes UF et objets dans ton UF pour faciliter le code (par exemple, j'aurais renommé la combo Obj_CB_ListFeuil)

    A+
    N'oubliez pas le si votre problème est solutionné.

  7. #7
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    Merci je ne savais pas qu'une feuille devait obligatoirement être visible pour excel.
    On se couche moins bête tous les jours

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/08/2011, 23h16
  2. [XL-2000] Pb liste déroulante avec jours de la semaine
    Par AdrienHeiser dans le forum Excel
    Réponses: 4
    Dernier message: 28/05/2009, 16h14
  3. Réponses: 5
    Dernier message: 23/09/2007, 18h47
  4. liste déroulante mise a jour
    Par D.Mounir dans le forum Excel
    Réponses: 17
    Dernier message: 18/06/2007, 11h34
  5. Réponses: 2
    Dernier message: 08/01/2007, 08h36

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