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 :

Valeur d'objet shape non enregistrée


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    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).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                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.

    En pièce jointe jointe, 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
    Images attachées Images attachées  

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Il y a plusieurs choses qui m'échappe.

    tout d'abord pourquoi crées tu dynamiquement tes comboboxs ?

    et pourquoi n'utilises tu pas un Formulaire pour saisir des données (UserForm)? Personnellement cela me paraitrait plus simple !

    Ceci dit sans faire de macros j'ai construit une combobox avec une liste de donnée et je récupère bien mes infos y compris sur ma première ligne de ma combo et en fermant mon classeur (et même Excel)

    D'où ma première question

    Dis nous

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    J'ai fait un simple fichier excel avec une combobox, j'ai le problème. Mais.... je l'ai avec Excel 2010, avec Excel 2013 je ne l'ai pas ! Il y a donc un bug dans la version 2010, pfff. ça n'arrange pas mes affaires. Si je fais une cellule liée, je n'ai pas le problème.

    Bon ben voili :-( Je vais lancer des Windows updates pour voir s'il y aurait par chance une correction.

    Cordialement

Discussions similaires

  1. Valeur transmises via URL non enregistrée
    Par eluus dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 01/11/2012, 12h35
  2. Pb Bibliothèque d'objets non enregistrée - Mscomctl.ocx
    Par olive_le_malin dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 24/08/2012, 12h45
  3. Réponses: 6
    Dernier message: 14/02/2012, 16h04
  4. Copier la valeur d'un objet et non sa référence.
    Par NejNej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/01/2010, 09h59
  5. Réponses: 2
    Dernier message: 02/02/2009, 14h53

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