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 :

Mettre une plage nommée dans un ComboBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut Mettre une plage nommée dans un ComboBox
    Salut, je pense que le titre dis tout. J'ai une combo box et je voudrais qu'une selection nommée puisse en etre la destination. J'ai essayé dans RowSource ="Date_filtre" ; =Date_filtre ; Date_filtre ; "Date_filtre". Seul =Date_filtre ne m'affiche pas d'erreur à la validation.

    Mais au lancement de la macro ca ne fonctionne pas, je n'ai aucun choix dans ma zone de choix...
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monCombo.RowSource = Range("nomDeLaPlage")

  3. #3
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    Ca ne marche pas :'(

    Erreur '380'
    Impossible de définir la propriété RowSource. Valeur de propriété non valide.
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  4. #4
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Il est où ton ComboBox, directement sur la feuille ou sur un UserForm ?

  5. #5
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    J'ai sur un userform 3 combobox et la 3 eme doit etre renseigné par rapport aux 2 autres combobox.

    Ce que j'ai fait je le marque dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomDeMonUserform.ComboBoxDate.RowSource = Range("Date_filtre")
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  6. #6
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Et est-ce que par le plus grand des hasard cette combobox qui dois recevoir les données de Date_Filtre ne serait pas la troisième combobox sus nommée?

  7. #7
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    Oui excuses moi, j'ai oublier de le dire. Mais cela poserait-il problème ?
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  8. #8
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Et comment! Tu veux mettre des valeurs contenues dans une plage mais seulement certaines d'entre elles selon un filtre donné. Ce n'est pas la même chose que mettre bêtement le contenu d'une plage dans un comboBox.

    Enregistre une macro qui applique le filtre et examine le code. Ça te donnera un point de départ pour les conditions du filtre.

  9. #9
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    Non, non, je me suis mal fait comprendre. En fait, la selection des cellules est déja faite. C'est "Date_filtre" qui est la plage de cellules.

    Date_filtre n'est qu'un nom barbare que j'ai pu trouver, ce n'est pas une selection avec un filtre appliquée à celle-ci. A partir de cette plage de cellule nommée, je voudrais que ma comboBox3 puisse prendre les valeurs des cellules de la plage nommée.
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  10. #10
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Hoaah! C'est mon erreur! M'excuse!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maCombo.RowSource = Range("maPlage").Address
    Il manquait le .Address!

  11. #11
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    C'est vraiment bizarre, quand je regarde le range ca me donne bien $L$5,$L$7, etc...
    Mais le combobox n'as toujours rien...
    Normalement une propriété rentré ne change pas une fois que le prog a terminé, ce que je veux dire c'est que dans ce cas, normalement dans la propriété de ma combobox3, RowSource il doit y avoir marqué quelquechose nan ?

    Là il n'y a rien, et même pendant l'éxecution il n'y a rien...
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour


    zazaraignée a écrit
    maCombo.RowSource = Range("maPlage").Address

    chez moi ça fonctionne ...
    éventuellement, précise le nom de la feuille dans ta procedure



    michel

  13. #13
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Comment tu t'y es pris pour nommer cette plage de cellules?

  14. #14
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    Désolé Zaza, mais je n'ai l'internet qu'au travail

    Tout d'abord, je suis dans un Tableau Croisé Dynamique qui est filtré (par les 2 premières comboBox)dans lequel je trouve le numéro d'échantillon. Ensuite, je cherche sur la source du tableau(qui est dans une autre feuille) le numéro d'échantillon correspondant, je prend la cellule de la date et je la mets dans une selection enregistrée, comme je suis dans une boucle la selection s'agrandie et une fois la selection terminée je l'enregistre en tant que "Date_filtre".

    Je voudrais en fait, que suivant la selection des premières combobox, la 3ème me donne les choix de "Date_filtre" en mettant pour cela dans la propriété RowSource la plage nommée "Date_filtre".

    Avec la solution que tu m'as donné cela ne fais pas d'erreur mais mon comboBox n'affiche rien...

    Peut-on déja changer la source d'un comboBox pendant une execution ?
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  15. #15
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    Pour bien montrer ce que je voudrais faire je vais donner un fichier exemple en simplifié qui montre bien comment j'aimerais que cela soit fait.


    En fait j'ai nommé 2 plages de cellules une qui s'apelle DA qui est simplement A1:A11 et une autre DAT qui elle est un peu plus complexe, je l'obtiens en fonction des nombres qui sont marqués dans le Tableau Croisé Dynamique.

    Je voudrais simplement que ma combobox affiche les données dans ma selection nommée DAT.
    Je n'arrive pas à deviner pourquoi es ce que cela ne marche pas...
    Fichiers attachés Fichiers attachés
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  16. #16
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Ta plage nommée est donc plus ou moins liée au tableau croisé dynamique ? Ça commence à être tordu! Je ne sais pas si j'aurai le temps cette semaine. Mais en tout cas, rein n'empêche à d'autres de t'aider.

    Bon courage.

    Je reviendrai voir un peu plus tard.

  17. #17
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    J'ai mis un fichier exemple en page 1, il est simplifié mais ca montre bien l'incompréhension qui règne dans mon bout de code.

    Sinon il va falloir que je copie les lignes qui m'interesse quelquepart pour palier grossièrement à ce problème. Malheureusement je n'aime pas ce qui est grossier...
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

  18. #18
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    Tu peux tester cette adaptation

    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
    Dim DAT As Range
     
    Columns("g").Find(what:="numéro").Offset(1).Select
    numech = Range(Selection, Columns("G").Find(what:="total").Offset(-1)).Rows.Count
     
    For i = 1 To numech
     
        num = Sheets(1).Columns("G").Find(what:="numéro").Offset(0 + i)
     
        Columns("D").Find(what:=num).Offset(0, -3).Select
     
        If i = 1 Then
            Set DAT = Selection
            ComboBox2.AddItem Selection.Value
            Else
            Set DAT = Union(DAT, Selection)
            ComboBox2.AddItem Selection.Value
        End If
    Next
     
    Names.Add Name:="DAT", RefersTo:=DAT


    michel

  19. #19
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    MÂâarci Michel,

    J'y avais penser chez moi rapidement, mais je ne pouvais pas mettre en application. Je vais m'atteler à faire ce que tu m'as conseillé.

    Merci encore
    N'oubliez pas de cliquer sur Résolu, une fois la réponse donnée.

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

Discussions similaires

  1. [XL-2007] Utilisation d'une plage nommée dans une recherchev
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/06/2014, 15h15
  2. Réponses: 0
    Dernier message: 27/05/2014, 13h14
  3. [Toutes versions] Accéder aux éléments d'une plage nommée dans une formule
    Par TOM3110 dans le forum Excel
    Réponses: 1
    Dernier message: 13/05/2009, 11h53
  4. Vérifier si un double clic se fait dans une plage nommée
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/12/2008, 16h40
  5. Compter des valeurs dans une plage nommée
    Par deniooo dans le forum Excel
    Réponses: 25
    Dernier message: 30/06/2008, 18h00

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