none
Valeur d'objet shape non enregistré RRS feed

  • Question

  • Bonjour tout le monde.

    Voilà j'ai un classeur Excel avec beaucoup de code, tout fonctionne très bien hormis un point.

    Dans les différentes feuilles, je créée des objets shape comme ceci :

    With ActiveWorkbook.Sheets("Définir une leçon").range("B6:B6")
           Set cbSite = ActiveWorkbook.Sheets("Définir une leçon").Shapes.AddFormControl(xlDropDown, .Left, .Top, .Width, .Height)
    End With
    With cbSite
           .ControlFormat.DropDownLines = 35
           .Name = "cbSite"
    End With

    Ensuite je publie des éléments dans ces listes déroulantes, pas de souci.

    Lors de l'utilisation, je choisis choisi un élément dans la liste déroulante et en cliquant sur un bouton ça fait différentes opérations. Dans la listes des dernières opérations, je désactive le contrôle pour éviter de changer la valeur. En effet, une l'action lancée, on ne peut plus modifier la combobox (c'est pour garder la trace).

    With ActiveWorkbook.Sheets("Définir une leçon").Shapes("cbSite")
          .ControlFormat.Enabled = False
    End With

    Le classeur est enregistré automatiquement avec ActiveWorkbook.Save

    Ensuite je ferme le classeur et je l'ouvre à nouveau et il arrive parfois que la valeur choisie dans la liste déroulante soit vide.
    Après plusieurs tests, j'ai remarqué que la valeur est bien conservée pour autant que ce ne soit pas la première de la liste ! Cela me fait cela avec toutes mes listes déroulantes. Si je sélectionne un élément autre que le premier, que j'enregistre mon classeur et que je l'ouvre à nouveau, pas de souci la valeur est bien conservée. Mais si je choisis la premier élément, que j'enregistre mon classeur et que l'ouvre à nouveau, la valeur est vide.

    Ci-dessous, j'ai mis une capture d'écran. On voit qu'il y a trois shapes combobox, après avoir fermé et rouvert le classeur, deux d'entre eux on bien leur valeur, mais celui de l'Animateur est vide, et pour celui-ci, j'avais choisi le premier élément de la liste.
    Avant de fermer le classeur (qui était déjà enregistré), j'avais bien la valeur à l'intérieur.

    Pourriez-vous m'aider s'il vous plaît.
    Merci d'avance pour votre aide et belle journée.
    Meilleures salutations

    vendredi 9 octobre 2015 06:24

Toutes les réponses