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 :

Impossible d'affecter une valuer à un combobox


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    ingénieur essai
    Inscrit en
    Juin 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : ingénieur essai
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 35
    Par défaut Impossible d'affecter une valuer à un combobox
    Bonjour à tous,

    Je travaille sur Excel 2016.

    J'ai un userform avec plusieurs combobox que je paramètre selon la même procédure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    With FormTest.ComboRequester
        .ColumnCount = 2
        .ColumnHeads = False
        .ColumnWidths = "0;100"
        .List = initial_array
        .Style = fmStyleDropDownList
        .TextColumn = 2
        .BoundColumn =1
    End With
    initial_array est un tableau à deux dimensions
    la première colonne contient un entier qui correspond à l'Id du demandeur "Requester" et la première colonne contient une chaine de caractère "Nom prénom"

    Jusque là tout va bien, le combobox se remplit bien avec les données et quand je sélectionne une ligne, il m'affiche bien le nom et prénom.

    Je souhaite ensuite initialiser la valeur du mon combobox en fonction de l'Id d'un demandeur.
    j'écris donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FormTest.ComboRequester.value = 2
    Et c'est là que le drame se produit, j'ai un vilain message d'erreur:

    erreur d'excution '380':
    Impossible de définir la propriété Value. Valeur de propriété non valide.


    Je cherche une solution depuis ce matin, mais je galère vraiment et impossible de trouver quelque chose sur le net.
    Pourtant le combobox.value = 2 fonctionnait hier. En fait ça c'est faut ce qui marchait c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    formTest.boundColumn= 2
     
    FormTest.ComboRequester.value = "Chevallier Guillaume"


    Je suis tout oui à vos remarques et suggestions.

    Cordialement,

    Guillaume.

  2. #2
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615
    Par défaut
    Bonjour.
    Comment voulez vous initialiser la combobox? Si pas de nom alors vide? Ou bien ?

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    J'aurais plutôt géré la propriété Listindex de la zone de liste déroulante.
    Celle-ci étant liée à la place qu'aurait l'identifiant de l'utilisateur dans une colonne.
    Nota: Listindex démarre à -1 (vide), 0 correspondant au 1er item.

    Macombo.Listindex = Equiv(....

  4. #4
    Membre averti
    Homme Profil pro
    ingénieur essai
    Inscrit en
    Juin 2017
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : ingénieur essai
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2017
    Messages : 35
    Par défaut
    Bonsoir,

    Mon formulaire doit me permettre de modifier les enregistrements d'une table A d'une base de données Accès.
    Lorsque je modifie un enregistrement, il faut donc que les champs soient initialisés avec les valeurs de l'enregistrement. Pour les Textbox, pas de soucis. Pour les combobox, ça se complique.

    La liste de valeurs des combobox viennent d'autres tables B, C,... liées à ma première table. Chaque ligne d'un combobox contient donc un Id et des données. Les Id ne sont pas forcément continus si des enregistrements des bases B et C sont supprimés.

    Je trouve donc plus logique d'utiliser les id de mes enregistrements plutôt que ListIndex. Notamment pour récupérer directement la valeur de cet Id pour l'enregistrer.

    J'ai donc des combobox avec deux colonnes: colonne(1) = Id (BoundColumn), colonne(2)=valeur affichée (TextColumn).

    Si j'initialise la propriété BoundColumn sur une colonne qui contient du texte, je peux initialiser mon combobox en utilisant Combobox.value= "Texte".
    Par contre impossible si la colonne contient un entier, même si je le convertis en texte CStr(entier).

    J'ai trouvé une solution qui ne me convient qu'à moitié. J'initialise le combobox avec le texte, plutôt que l'id. Ensuite pour récupérer l'id, j'utilise la propriété combobox.column(1).

    J'espère que mon explication est suffisamment claire.

    Guillaume Chevallier.

Discussions similaires

  1. [XL-2007] Impossible d'affecter une formule à une cellule
    Par esigwald dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2011, 18h03
  2. Réponses: 4
    Dernier message: 19/10/2009, 13h41
  3. impossible d'affecter une valeur a une cellule
    Par gronaze dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/12/2008, 21h09
  4. [VB.NET]Impossible d'affecter un datasource au combobox !
    Par BalBalNet dans le forum Windows Forms
    Réponses: 11
    Dernier message: 03/11/2006, 11h01
  5. impossible d'affecter une valeur à un objet
    Par Dafbau dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2006, 11h48

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