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 :

Comment mettre au jour automatiquement combobox.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 10
    Par défaut Comment mettre au jour automatiquement combobox.
    Bonjour

    J'ai crée un userform1, pour lequel il y a un combobox, dont la liste ce remplie automatiquement depuis des donnée dans une feuille excel... a coter il y a un bouton créer "" qui ouvre un userform 2 et sa ajoute automatiquement des donnée au tableau excel qui par la suite vont se mettre automatiquement dans la combobox USERFORM 1.

    Avez vous, une solution pour déjà pour que ma combobox dans l'userform 1 aille chercher la plage de donner mais de C1 a End(xlUp).Row....
    Puis que je suis pas a chaque fois obliger de fermer tous les userform pour mettre a jour la combobox 1 dans l'userform 1.

    Merci de votre aide

    Cordialement

    G PERRET

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste ce qui suit mais adapte auparavant :
    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
     
    Private Sub CommandButton1_Click() 'ton bouton créer...
     
        Dim Plage As Range
        Dim Tbl
     
        'ici ton code pour remplir la feuille Excel (ici nommée "Feuil1") en colonne C
        '...
        '...
     
        'remplissage du ComboBox
        With Worksheets("Feuil1")
     
            Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp))
     
        End With
     
        Tbl = Plage
     
        ComboBox1.List = Tbl
     
    End Sub
    Hervé.

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2015
    Messages : 10
    Par défaut RE
    Re bonjour

    Hervé,

    Merci ca marche nickel, par contre pour le deuxieme cas c'est à dire lorsque l'userform 2 (pour rajouter du texte dans le tableau excel) est ouverte, comment puis je faire pour que ça se mette automatiquement dans la combobox 2 de l'userform 1 sans tous ferme et tous réouvrir.

    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Alors, il te faut en faire une Sub (sans être précédé de "Private" sinon, elle ne sera pas visible depuis l'extérieur) dans le module de l'UserForm1 afin de pouvoir l'appeler depuis l'UserForm2. Tu crée une Sub nommée mettons "Remplir" que tu vas appeler depuis ton bouton Créer (à l'intérieur du module de l'UserForm1 afin de ne pas avoir de doublon de code) mais aussi depuis l'UserForm2 (comme une méthode) :
    A mettre dans le module de l'UserForm1 (le code du bouton "Créer" a été transféré dans la Sub Remplir) :
    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
     
    Private Sub CommandButton1_Click() 'ton bouton créer...
     
        Remplir
     
    End Sub
     
    Sub Remplir()
     
        Dim Plage As Range
        Dim Tbl
     
        'ici ton code pour remplir la feuille Excel (ici nommée "Feuil1") en colonne C
        '...
        '...
     
        'remplissage du ComboBox
        With Worksheets("Feuil1")
     
            Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp))
     
        End With
     
        Tbl = Plage
     
        ComboBox1.List = Tbl
     
    End Sub
    et dans le module de l'UserForm2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub CommandButton1_Click()
     
        UserForm1.Remplir
     
    End Sub
    Hervé.

  5. #5
    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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi utiliser deux UserForm pour créer et lister la même liste de données ?
    La lecture de cette contribution USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire, t'aidera peut-être pour tes développements futurs ?
    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

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Il est possible de passer des arguments à la Sub, par exemple un tableau pour compléter la ComboBox plutôt que de la recharger :
    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
     
    Sub Remplir(Optional Tablo As Variant)
     
        Dim Plage As Range
        Dim Tbl
        Dim I As Long
     
        'ici ton code pour remplir la feuille Excel (ici nommée "Feuil1") en colonne C
        '...
        '...
     
        'si l'argument a été passé, complète la ComboBox
        If Not IsMissing(Tablo) Then
     
            For I = 0 To UBound(Tablo)
     
                ComboBox1.AddItem Tablo(I)
     
            Next I
     
        Else
     
            'remplissage du ComboBox
           With Worksheets("Feuil1")
     
               Set Plage = .Range(.Cells(1, 3), .Cells(.Rows.Count, 3).End(xlUp))
     
           End With
     
           Tbl = Plage
     
           ComboBox1.List = Tbl
     
       End If
     
    End Sub
    et du second UserForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub CommandButton1_Click()
     
        Dim Tbl
     
        Tbl = Array("élément 1", "élément 2", "élément 3", "élément 4")
     
        UserForm1.Remplir Tbl
     
    End Sub
    Bonjour Philippe,
    Pourquoi utiliser deux UserForm pour créer et lister la même liste de données ?
    Il a sûrement ses raisons mais c'est vrai que deux formulaires qui ont la même liste de valeurs ???

    Hervé.

Discussions similaires

  1. Réponses: 10
    Dernier message: 25/06/2008, 13h54
  2. Réponses: 3
    Dernier message: 19/05/2006, 11h37
  3. [REDHAT] Comment mettre à jour glibc
    Par Abdel58 dans le forum RedHat / CentOS / Fedora
    Réponses: 7
    Dernier message: 19/05/2006, 11h30
  4. [VB.NET] Comment mettre à jour Date/Heure de mon PDA ?
    Par zitoun dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 16/05/2006, 14h12
  5. Réponses: 2
    Dernier message: 02/05/2006, 09h50

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