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 dans combobox


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Par défaut code dans combobox
    Bjr bjr,
    Un ami m'a donner un fichier exemple d'une combobox sur un formulaire, qui se rempli des valeurs d'une colonne de ma feuille excel. Il marche très bien.
    Le problème c'est que j'ai beau faire tout les tests possible et inimaginable, il n'y a rien à faire sur mon fichier ca marche pas ! Quel pourrais être le problème?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ComboBox_nom_Change()
    With Sheets("Janv")
        .Range("A6:A" & .[A65000].End(xlUp).Row).Name = "base"
    End With
    Me.ComboBox_nom.RowSource = [base].Address
    End Sub
    Le code est mis dans ma combobox, Janv est le nom de ma feuille excel ou se trouve mes valeur à mettre dans la combobox (la zone est défini par le nom "base")... et voila!
    Merci de votre aide.

  2. #2
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour,

    Juste une piste


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
    Me.ComboBox_nom.RowSource = Sheets("Janv").Range("A6:A" & Sheets("Janv").Range("A65536").End(xlUp).Row).Address
    End Sub

    Bon courage

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut ptitepo
    Le problème c'est que j'ai beau faire tout les tests possible et inimaginable, il n'y a rien à faire sur mon fichier ca marche pas ! Quel pourrais être le problème?
    il a pas de jambe
    Message d'erreur ???
    Quand tu vas voir un garagiste, tu ne te contente pas de dire "ça marche pas" ? Tu donnes quelques précisions, non ?

    Si ça fonctionne d'un coté et pas quand tu l'adaptes, c'est pas le code qui est à mettre en cause, mais l'adaptation

    Address donne l'adresse d'un range dans une page
    Pas l'adresse d'un range dans un classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Private Sub UserForm_Initialize()
    Me.ComboBox_nom.RowSource = "Janv!" & Sheets("Janv").Range("A6:A" & _
     Sheets("Janv").Range("A65536").End(xlUp).Row).Address
    End Sub
    A+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Par défaut
    Le code de jean pierre49 marche a moitié sur mon fichier test, mais dés que je le mets dans mon vrai fichier, non. Est ce que le fait que j'ai des multipage y est pour quelque chose?

  5. #5
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Peut être qu'avec un bout de ton code, histoire de voir

    le multipage ne doit en être pour rien

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Par défaut
    Voici le code de mon fichier test, il marche mais il y a encore des erreurs, car quant je déroule la zone, elle est vide, je la ferme et la reouvre, elle est pleine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Change()
    Dim pl As Range
    Set pl = Sheets("Feuil1").Range("A6:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
    pl.Name = "base"
    Me.Controls("ComboBox1").RowSource = "base"
    End Sub
     
    Private Sub UserForm_Initialize()
    Me.ComboBox1.RowSource = Sheets("Feuil1").Range("A6:A" & Range("A65536").End(xlUp).Row).Address
    End Sub
    et voici le code de mon vrai fichier, il n'y a pas de message d'erreur, j'ouvre mon formulaire et la zone de liste, et elle est completement vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox_nom_Change()
    Dim pl As Range
    Set pl = Sheets("Janv").Range("A6:A" & Sheets("Janv").Range("A65536").End(xlUp).Row)
    pl.Name = "base"
    Me.Controls("ComboBox_nom").RowSource = "base"
    End Sub
     
    Private Sub eff_mois_Initialize()
    Me.ComboBox_nom.RowSource = Sheets("Janv").Range("A6:A" & Range("A65536").End(xlUp).Row).Address
    End Sub
    Sinon j'ai trouvé ce code qui marche, mais que pour les lignes, evidament je veux la colonne lol ca serait trop beau. Ca ne m'affiche que A1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim Tableau As Variant
        Sheets("Feuil1").Select
        Tableau = Range("A1:A10").Value
        ComboBox1.Column() = Tableau

  7. #7
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    L'erreur est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub eff_mois_Initialize() ' Pas Bien
    Me.ComboBox_nom.RowSource = Sheets("Janv").Range("A6:A" & Range("A65536").End(xlUp).Row).Address
    End Sub

    essais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ComboBox_nom_Change()
    End Sub
     
    Private Sub UserForm_Initialize() ' Bien Pour l'evenement
    Me.ComboBox_nom.RowSource = Sheets("Janv").Range("A6:A" & Range("A65536").End(xlUp).Row).Address
    Me.ComboBox_nom.ListIndex = 0
    End Sub

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Par défaut
    Ah d'accord, je croyais que userform etait le nom de mon formulaire, mais rien a voir. Donc la ca marche, mais je sui obligé de rajouté sheets("Janv").select avant le code, sinon il m'affiche la colonne A de la page ou j'ai le bouton qui appel mon formulaire.
    Et tan que j'y suis, c'est possible de recupéré le numero de la ligne dans mon code, pour que je puisse l'utilisé aprés pour la suite de ma macro?

  9. #9
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    evite select


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_Initialize() ' Bien Pour l'evenement
    Me.ComboBox_nom.RowSource = Sheets("Janv").Range("A6:A" & Sheets("Janv").Range("A65536").End(xlUp).Row).Address
    Me.ComboBox_nom.ListIndex = 0
    End Sub

    Quel numero de ligne celle de la valeur selectionnée?

  10. #10
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour tlm,

    concernant le RowSource, il faut l'écrire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ComboBox_nom.RowSource = "Janv!" & Sheets("Janv").Range("A6:A" & Range("A65536").End(xlUp).Row).Address
    Sinon il prendra en compte les cellules de la feuille active

  11. #11
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour Fring


    Ok mais a priori il manque un Sheets("Janv") dans le Code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = "Janv!" & Sheets("Janv").Range("A6:A" & Sheets("Janv").Range("A65536").End(xlUp).Row).Address

    mais merci pour ta rectif.

  12. #12
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour JP

    bien vu

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Par défaut
    Merci a vous 2, ca marche niquel.
    Oui je voudrais récupéré le numero de la ligne qui correspond a mon choix. C'est possible?

  14. #14
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Oui c'est possible

    Une solution éventuelle, vu que ton RowSource commence à la ligne 6, tu peux tester ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ComboBox_nom_Change()
    Dim Lig As Integer
    Lig = 6 + Me.ComboBox_nom.ListIndex
    MsgBox Lig
    End Sub
    Ce code, à placer dans l'objet UserForm, s'exécutera lors de la sélection dans le Combo

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 246
    Par défaut
    Et ba parfait, merci beaucoup !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/10/2009, 16h51
  2. [debutant][awt] Pb avec ItemStateChanged dans combobox
    Par cosmos.1097 dans le forum Composants
    Réponses: 2
    Dernier message: 30/06/2005, 18h38
  3. [C#]ajout code dans code behind
    Par liliprog dans le forum ASP.NET
    Réponses: 8
    Dernier message: 21/06/2005, 11h03
  4. [VBA Excel] Comment écrire un code dans le ThisWorkBook ?
    Par WebPac dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2005, 15h03

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