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 :

[VBA-E] plage de reference dans une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Points : 148
    Points
    148
    Par défaut [VBA-E] plage de reference dans une autre feuille
    Bonjour à tous
    J'ai posé hier une question sur une erreur de combobox.
    J'ai compris que mon pb venait du fait que la plage où pointai la liste n'est pas dans la même feuille que la combobox.
    Est-il possible de mettre dans listefillrange une plage de donnée placée dans une feuille différente.
    Si oui comment faire?
    J'ai essayé en nommant ma plage de cellule comme pour une liste déroulante mais cela de marche pas.
    merci
    rémi

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Elle est où finalement la combobox ... sur quel genre de feuille... ? comment affectez-vous la plage de donnée ...?


  3. #3
    Membre habitué
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Points : 148
    Points
    148
    Par défaut
    Voila jai deux feuilles de calcul Excel classique une "modele" sur laquelle est placé la combobox
    une autre "configuration" qui comprend entre autres une liste de configuration dans la colonne 1
    Pour le moment j'affecte la plage de donnée en remplissant la propriété ListFillRange
    mais lorsque je rentre ma plage situé dans une autre feuille, excel ne veut pas "mémoire insuffisante pour afficher en entier"
    du coup j'ai tenté d'attribuer un nom a ma plage car j'ai lu que ca marchait pour une liste déroulante classique mais il me donne la mm erreur
    Il y a peut etre une option a mettre qq part? mais j'ai beau chercher je ne l'ai pas trouvé
    merci
    rémi

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    J'avais un pb du même type et je m'en suis sorti en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("modele").OLEObjects("Nom_de_ta_combobox").ListFillRange = "configuration!A1:A20"
    Ici, j'ai pris le noms de tes feuilles mais le nom de la combobox et la plage (A2:A20) sont des exemples

    Chez moi, ça marche !

    Bon courage

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Points : 148
    Points
    148
    Par défaut
    Bonjour,
    merci de ta réponse yogyx
    en fait mon pb ne vient pas du fait que je n'arrive pas à remplir la propiété listfillrange de ma combobox, ca, ca marche bien.
    Non le pb c'est que une fois que listfillrange est remplie avec les coordonnées de ma plage, des que je touche à ma combobox, il m'affiche l'erreur cité plus haut
    mémoire insuffisante pour afficher en entier
    même si il a l'air d'avoir compris ou il devait aller chercher les données (liste bien rempli mais une fois seulement)
    par contre si je rentre une plage de cellule présente dans la même feuille, il n'y a pas de problème
    rémi

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Désolé, je sèche

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Points : 148
    Points
    148
    Par défaut
    Non c pas grave tant pis
    Pour contourner le pb je me suis résolu à copier ma plage de valeur sur la bonne feuille (pas top pasque je voulais pas trop utiliser des plages pour ca sur ma feuille de valeur)
    de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Workbook_open()
    Dim i As Integer
     
    i = 2
    Do While Worksheets("Configuration").Cells(i, 1).Value <> ""
    Worksheets("modele").Cells(i, 20).Value = Worksheets("Configuration").Cells(i, 1).Value
     
    i = i + 1
    Loop
     
    Worksheets("modele").Activate
     
    End Sub
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub WorkSheet_activate()
     
    Dim marange As Range
    Dim i As Integer
    i = 2
    While Worksheets("modele").Cells(i, 20) <> ""
     i = i + 1
    Wend
    Set marange = Range(Worksheets("modele").Cells(2, 20), Worksheets("modele").Cells(i, 20))
    If ComboBox1.ListFillRange <> marange.Address Then ComboBox1.ListFillRange = marange.Address
     
    End Sub
    mais merci beaucoup de vous etre attelé au pb
    rémi

  8. #8
    Membre habitué
    Inscrit en
    Juillet 2005
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 141
    Points : 148
    Points
    148
    Par défaut
    EUh je sais plus trop la je dois mettre resolu ou delestage (sachant que jai pas vraiment répondu a ma question mais que j'ai contourné le pb)
    rémi

  9. #9
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Tu peux mettre "résolu" parce que moi, ca m'a bien aidé de savoir qu'en mettant ma liste de valeur dans la même page ca marcherait !!!
    Trop merci en tout cas !

    Surtout pas délestage puisqu'en général on ne lit pas un tel sujet ...

    et c'est un vrai problème de 2007, je trouve que c'est honteux qu'après le service pack 2 il reste toujours ce genre de bug dans un tel produit.

    Je précise que j'avais fait ma macro sur une version bien plus vieille et que ca marchait parfaitement.

    Ah, et moi, j'avais une autre manière de contourner (bien moins satisfaisante)...
    au lieu d'utiliser la liste avec la souris, je mettait mon curseur dans la liste (là, pas de message, ou juste 1), et je passais à la valeur suivante ou précédente avec les flèches du clavier...

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/06/2012, 14h22
  2. Réponses: 5
    Dernier message: 17/02/2011, 21h12
  3. Trouver une plage de cellule dans une autre plage
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 16/04/2008, 14h27
  4. [VBA-E]Copier une serie de cellules dans une autre feuille
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/03/2006, 17h23

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