Excel VBA - Contrôles ActiveX ComboBox avec utilisation de Named Range imbriqués

Anonyme
2018-02-11T17:15:26+00:00

L'utilisation de ces contrôles avec ajout de liste (fonction .Add) ne pose pas de problèmes mais dès lors que j'utilise des Named Ranges (par la fonction ListFillRange), la situation se complique. Déclaration d'objets exigée , la fonction set = etc : d'accord; mais cela ne fonctionne pas mieux. J'ai besoin d'aide. Merci.

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire
Réponse acceptée par l’auteur de la question
DanielCo 107.7K Points de réputation
2018-02-25T17:42:18+00:00

A ma connaissance, il n'y a pas de communication officielle sur ce sujet. On sait que ça se produit, mais on ne sait pas pourquoi. D'où l'importance de sauvegarder régulièrement les classeurs.

Daniel

Cette réponse a-t-elle été utile ?

1 personne a trouvé cette réponse utile.
0 commentaires Aucun commentaire

49 réponses supplémentaires

  1. Anonyme
    2018-02-12T17:01:08+00:00

    Mais par exemple dans un formulaire:

    ws.Rowsource = "RE" & "1" marche très bien.

    pas possible avec ListFillRange dans un ComboBox ActiveX? Pourquoi?

    N'y a-t-il pas un autre moyen?

    Pourquoi:

    Sub chargeCB2()

    Dim objX2 As Object

    Set objX2 = ActiveSheet.OLEObjects("ComboBox2")

    With objX2

        .ListFillRange = "=RE." & Cells(1, 5)

    End With

    End Sub

    ne marche-t-il pas?

    Merci.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2018-02-12T16:40:13+00:00

    Non. Le code fonctionne tel que je te l'ai posté :

    https://1drv.ms/x/s!AqRP0RQrhNWW1kV1gBIDYAw2JDSa

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2018-02-12T16:22:34+00:00

    Rebonjour, suite à mon dernier message.

    C'est pour cela que j'avais utilisé les codes (en double '' pour ce qui me concernait):

    ''Sub chargeCB2()

    ''Dim objX2 As Object

    ''Set objX2 = ActiveSheet.OLEObjects("ComboBox2")

    ''With objX2

    ''    .ListFillRange = "=RE." & Cells(1, 5)

    ''End With

    ''

    ''End Sub

    je les ai mis en doubles ' ' commentaires parce qu'ils posent problème : le systèem exige une référence objet, un écriture en with...

    mais ils ont l'avantage de me créer une nom de liste qui est faite d'éléments variables.

    J'espére que je suis plus clair cette fois-ci.

    merci

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2018-02-12T15:47:53+00:00

    Merci pour l'aide; en fait ma question est plus complexe.

    1/ j'ai besoin de Combox ActiveX imbriqués. je l'ai dit dans ma question.

    ComboBox1 implique ComboBox2; pour cela, les noms de listes eux-même sont imbriqués. J'ai utilisé pains et viennoiseries comme exemple type (qui n'est pas le cas que je traite). 

    2/ Les noms de liste sont construits par un système de codes (c'est pour cela que j'ai mis en deuxième colonne 1 et 2. Ils sont nécessaires.

    Par exemple, les codes de ComboBox1 sont 1 et 2 ; Lorsque Combox2 est appelé, il utilise 1 ou 2 pour construire son nom de liste (associé à ComboBox2).

    3/ ce qui m'intéresserait c'est d'avoir des noms de listes variables. Dans ton exemple, NomdeListe est prédéfini. Dans mon exemple, ComboBox1 est lui-même dépendant d'une variable (cellule au préalable prédéfinie dans la feuille).

    4/ [NomDeListe].Adress me paraît intéressant. Cependant il me faudrait pouvoir modifier de façon à avoir dans le cas de ComboBox2, soit un nom de liste avec 1 soit avec 2. Est-ce possible? D'avoir pour NomdeListe une variable par exemple dans la commande  [NomdeListe].Address?

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire