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 :

ComboBox1 activeX chargement [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut ComboBox1 activeX chargement
    Bonjour au forum,

    mon problème va vous paraitre simple à vos yeux (et sans doute problème répétitif), mais je n'arrive pas à remplir convenablement ma combobox1 (activeX) sur mal feuille1.

    j'ai jonglé avec les événements et je pense que je gère mal ou comprends pas bien les événements. l'aide en ligne ou autre forum ne me donne pas la logique à tenir.

    Dans mon cas je souhaite:
    -> lorsque je clique sur ma combo, qu'il efface le contenu, remplit les onglets actuels (sauf feuille1)
    En somme rafraichir la combobox en fonction des onglets supprimés ou ajouttés

    j'ai ceci comme code mais ça fait pas du tout le job . Je ne sais pas si ma demande est claire ?!
    j'ai essayé avec les événements "enter" et/ou "Dropbuttonclick"

    dans feuil1 j'ai mis ceci
    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
     
    Sub ComboBox1_Enter()
     
    Dim sh As Worksheet
     
    ThisWorkbook.Worksheets(1).ComboBox1.Clear
    With ThisWorkbook.Worksheets(1).ComboBox1
          For Each sh In Worksheets
            If sh.Name <> "feuil1" Then .AddItem sh.Name
            Next sh
        End With
     
    End Sub
     
     
    'Private Sub ComboBox1_DropButtonClick()
    'Dim sh As Worksheet
    'Combobox1.clear
    'With ComboBox1
    '       For Each sh In Worksheets
    '        If sh.Name <> "feuil1" Then .AddItem sh.Name
    '        Next sh
    '    End With
    'End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 595
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 595
    Par défaut
    Dans GotFocus ça semble marcher pas mal.

    Edit, avec le seul code dans GotFocus, j'avais un petit bug d'affichage
    Nom : Capture_bug_cb_excel.PNG
Affichages : 74
Taille : 1,3 Ko

    avec ce code, ça a l'air de fonctionner
    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
    Private Sub ComboBox1_DropButtonClick()
        ThisWorkbook.Sheets("Feuil1").ComboBox1.ListRows = 5
    End Sub
     
    Private Sub ComboBox1_GotFocus()
        Dim ws As Worksheet
        With ThisWorkbook.Sheets("Feuil1")
            .ComboBox1.Clear
            DoEvents
            For Each ws In ThisWorkbook.Worksheets
                If ws.Name <> .Name Then .ComboBox1.AddItem ws.Name
            Next
     
        End With
     
        DoEvents
    End Sub

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut
    Bonjour Umfred, merci pour l'aide

    j'ai effectué le ComboBox_Gotfocus j'obtiens le bon compromis, par contre je n'ai pas comme vous le bug affichage.
    Par contre lorsque j'ai seletionné ma ligne et que je clique sur la feuille on voit que pendant une micro seconde l'affichage change, mais bon je mets sur le compte de EXcel (j'avais déjà des soucis aussi avec checkbox.color)

    Ca fait le job en tout cas.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 184
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dans mon cas je souhaite:
    -> lorsque je clique sur ma combo, qu'il efface le contenu, remplit les onglets actuels (sauf feuille1)
    En somme rafraichir la combobox en fonction des onglets supprimés ou ajouttés
    Si j'ai bien compris votre problème, il y a moyen d'aborder le sujet sous un autre angle.

    Sauf si vous supprimez et ajoutez vos feuilles par programmation, une solution simple en créant une procédure dont le job consiste à remplir l'ActiveX (CombobBox), que vous passez en paramètre, du nom de toutes les feuilles du classeur en omettant celui de la feuille active.
    Procédure que vous pouvez invoquer au moment où vous sélectionnez la feuille en question.

    Avantage, cette procédure peut être utilisée dans un autre contexte (n'importe quelle feuille et/ou un autre ComboBox)

    Code à placer dans un module standard ou dans le module de la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function GetSheetsName(oList As MSForms.ComboBox)
      ' Charge le nom des feuilles du classeur à l'exception de la feuille active
      Dim sh As Worksheet
      With oList
      .Clear
       For Each sh In Worksheets
             If sh.Name <> ActiveSheet.Name Then .AddItem sh.Name
       Next sh
      End With
    End Function
    Code de la procédure événementielle qui l'invoque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate()
      GetSheetsName Me.ComboBox1
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/01/2017, 12h55
  2. 2 PDFViewer (ActiveX ?) sur la même form : Pb de chargement
    Par jaune74 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 25/10/2016, 17h43
  3. [WD14] Chargement Excel dans un contrôle activeX
    Par sylvain37 dans le forum WinDev
    Réponses: 5
    Dernier message: 17/02/2012, 14h40
  4. [AC-2010] Chargement fichier dans contrôle activeX topsolidviewer
    Par audloi dans le forum Access
    Réponses: 8
    Dernier message: 26/09/2011, 21h47
  5. action APRES chargement complet ...
    Par PinGuy dans le forum Delphi
    Réponses: 7
    Dernier message: 06/07/2006, 18h16

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