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 :

Code d'actualisation d'une combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Bonjour,

    J'ai une combobox que je souhaite actualiser à l'ouverture d'un formulaire.
    Son contenu doit etre celui de cellules excel.
    J'ai le code suivant mais à l'ouverture du formulaire, la combobox reste vide...
    Je suis débutant donc l'erreur doit être évidente....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Form1_Initialize()
        Foragebox.RowSource = Worksheets("Feuil1").Range("A3:A49")
    End Sub
    merci d'avance....

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    Quelque soit le nom de ton formulaire tu ne dois pas modifier le nom de sa procedure Initialize. D'autre part RowSource attend simplement une adresse de cellules, pas les cellules elle-mêmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
        ForageBox.RowSource = "A3:A49"
    End Sub
    Cordialement,

    Tirex28/

  3. #3
    Membre expérimenté Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 19
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Par défaut
    Avec une plage de cellule nommé c'est plus jolie et plus facile à lire et SURTOUT a maintenir au cas ou cette plage évolue (ajout ou suppression de valeur) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        MaFeuille.Range(Range("A1").CurrentRegion. _
        Address(False, False)).CreateNames Top:=True 'si la liste de données se trouve en a2 et suivantes
        MaComboBox.RowSource = "MaListe" 'MAliste est le titre de la plage de données qui commence en A2

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Merci beaucoup pour votre aide!

    En réalité j'ai parlé un peu trop vite...
    J'ai le code suivant mais ma combo box reste desespéremment vide...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Form1_Initialize()
        Worksheets("feuil1").Activate
        Foragebox.RowSource = "A3:A49"
    End Sub
    Si vous avez une idée??
    Encore merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 66
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form1_Initialize()
        Worksheets("feuil1").Activate
        Foragebox.RowSource = "A3:A49"
    End Sub
     ce code comporte une erreur voici une solution je l'utilise régulierement elle fonctionne:
    Private Sub Userform_Initialize()
        Worksheets("feuil1").Activate
        Foragebox.RowSource = "A3:A49"
    End Sub
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Userform_Activate()
        Worksheets("feuil1").Activate
        Foragebox.RowSource = "A3:A49"
    End Sub
    L'activate est plus éfficace car Initialize ne s'éxécute qu'une seul fois au premier démarrage de ta box.
    C'est peut etre une piste

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Merci de votre aide...

    Quelque chose se passe quand le formulaire s'ouvre mais au lieu de me remplir ce fichu combobox, VB m'affiche une erreur de type '9' et m'indique "l'indice n'appartient pas à la selection".
    Le débogage me surligne la ligne Worksheets("Feuil1").Activate
    C'est probablement que ma syntaxe est fausse... Si quelqu'un peut me dépétrer de ce pbm, je suis preneur!!!!
    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub UserForm_Activate()
        Worksheets("Feuil1").Activate
        Foragebox.RowSource = "A3:A49"
    End Sub

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

Discussions similaires

  1. Probleme d'actualisation d'une combobox
    Par PascalStl dans le forum Général Python
    Réponses: 8
    Dernier message: 30/01/2014, 05h35
  2. probleme actualisation d'une combobox générée par macro.
    Par elombre dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/06/2009, 12h38
  3. Code d'actualisation d'une txtbox
    Par benoit13 dans le forum IHM
    Réponses: 7
    Dernier message: 24/07/2007, 09h33
  4. equivalent C d'une combobox codée en C++
    Par laprogrammeuse dans le forum MFC
    Réponses: 3
    Dernier message: 28/06/2007, 08h54
  5. actualisation d'une combobox
    Par norkoffire dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 26/06/2007, 10h54

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