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

Trier par : Les plus récents
  1. 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
  2. DanielCo 107.7K Points de réputation
    2018-02-12T11:30:02+00:00

    Modifie le code comme suit :

    Private Sub ComboBox1_Change()

    Call chargeCB2

    End Sub

    Sub chargeCB2()

    With Me.ComboBox2

        If Me.ComboBox1.Value = 1 Then

          .ListFillRange = "=RE.1"

        ElseIf Me.ComboBox1.Value = 2 Then

          .ListFillRange = "=RE.2"

        End If

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

        .ListIndex = 0

    End With

    End Sub

    Tu peux supprimer la propriété "LinkedCell" de Combobox1". Tu pourrais aussi supprimer le "1" et le "2", mais à chaque jour suffit sa peine.

    Daniel

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

    0 commentaires Aucun commentaire
  3. Anonyme
    2018-02-12T10:50:59+00:00

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

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2018-02-12T10:49:55+00:00

    Tu peux modifier mon classeur. Il n'y a pas de formule. Il y a un combobox et un nom défini, visible dans le gestionnaire de noms ainsi qu'un module VBA. Pour créer un lien, fais un clic droit sur le fichier  et clique sur "Partager un lien OneDrive".

    Daniel

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

    0 commentaires Aucun commentaire