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

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 54
    Points
    54
    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 éclairé

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    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 actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    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
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 54
    Points
    54
    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 régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 66
    Points : 77
    Points
    77
    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 du Club
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 54
    Points
    54
    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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 66
    Points : 77
    Points
    77
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Activate()
        Worksheets("Feuil1").Activate             '<==== entre parenthese ce doit être une erreur, c'est le nom de l'onglet qui doit apparaitre.
        Foragebox.RowSource = "A3:A49"
    End Sub
    renomme ta feuille et mets le nom dans le code
    Bon courrage

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    Jolzeviking, tu es un Dieu!!

    Merci beaucoup! Ca marche avec le nom de l'onglet

+ 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