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

VB.NET Discussion :

Petit souci d'injection de données dans une combobox [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut Petit souci d'injection de données dans une combobox
    Bonjour,
    J'arrive parfaitement a loader une valeur contenue dans une cellule excel dans une textbox d'un form en faisant par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     rng = CType(Me.xlWorkSheetOne.Cells(10, 4), Microsoft.Office.Interop.Excel.Range)
                Me.le_nom_de_ma_textbox.Text = CType(rng.Value, String)
    par contre, impossible quand ce n'est plus une textbox, mais une combobox qui s'appelle par exemple ma_combobox

    Existe t'il une syntaxe particuliere au cas précis tout en evitant les doublons eventuels avec des valeurs deja exostantes ?????. Je precise que si je veux remplir ma combobox a la main, j'entre la valeur et je valide par appui sur enter

    Merci

  2. #2
    Membre éprouvé
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Points : 1 111
    Points
    1 111
    Par défaut
    Pour ajouter une valeur à ta combobox, il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taCombo.Items.Add(taValeur)

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Bonjour,

    pour une combobox, il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if not ma_combobox.items.contains(ton_element) then
        ma_combobox.items.add(ton_element)
    end if
    Penser à mettre la combobox en DropDownList si on ne veut pas que l'utilisateur puisse modifier le texte.
    Le Porc est un loup pour le Porc.

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    daccord, merci bien pour la syntaxe mais je me pose la question suivante :
    ici, "ton_element" représente le contenu de la cellule (B:5) de mon fichier excel par exemple.
    le If .... not contains va scruter les elements enregistrés dans ma combobox pour eviter les doublons ?

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Oui, dans le cas présent tu stockes de simples "Strings", tu peux donc faire comme ça.
    Le Porc est un loup pour le Porc.

  6. #6
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    arghhhh j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     rng = CType(Me.xlWorkSheetOne.Cells(10, 3), Microsoft.Office.Interop.Excel.Range)
                If Not txtDocteur.Items.Contains(Me.xlWorkSheetOne.Cells(10, 3)) Then
                    txtDocteur.Items.Add(Me.xlWorkSheetOne.Cells(10, 3))
    pour afficher et enregistrer le contenu de la cellule 10,3 de ma feuille excel ..... rien de s'affiche directement dans la combobox, par contre il me stocke SYSTEM._COMOBJECT

  7. #7
    Membre éprouvé
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Points : 1 111
    Points
    1 111
    Par défaut
    Tu as oublié les .Value sur tes Cells(i,j)...

  8. #8
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    comment ca j'ai oublié les .value gurdil ????? si je les mets, j'ai trop d'arguments ...

  9. #9
    Membre éprouvé
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Points : 1 111
    Points
    1 111
    Par défaut
    Cela ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    rng = CType(Me.xlWorkSheetOne.Cells(10, 3), Microsoft.Office.Interop.Excel.Range)
     
    If Not txtDocteur.Items.Contains(Me.xlWorkSheetOne.Cells(10, 3).Value) Then
           txtDocteur.Items.Add(Me.xlWorkSheetOne.Cells(10, 3).Value)
    ??

  10. #10
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    ben non ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.xlWorkSheetOne.Cells(10, 3).Value
    j'ai option strict on rejette toute liaison tardive

  11. #11
    Membre éprouvé
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Points : 1 111
    Points
    1 111
    Par défaut
    Euh oui en effet, je me suis trompé dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    rng = CType(Me.xlWorkSheetOne.Cells(10, 3), Microsoft.Office.Interop.Excel.Range)
     
    If Not txtDocteur.Items.Contains(rng .Value) Then
           txtDocteur.Items.Add(rng .Value)

  12. #12
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    Alors ca fonctionne effectivement dans la mesure ou la valeur entree se retrouve bien dans les enregistrements de la combobox, MAIS ;;; (y a toujours un mais j'ai l'impression en dev ....) elle ne s'affiche pas dans la fenetre du combobox
    concrètement si je clique sur le menu déroulant du combobox, j'ai bien la nouvelle valeur entrée et je peux l'afficher en cliquant dessus, mais cette même valeur ne s'affiche pas quand je loade les valeurs depuis la feuille excel

  13. #13
    Membre éprouvé
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Points : 1 111
    Points
    1 111
    Par défaut
    J'ai rien pigé...

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    ça serait bien d'xpliquer un peu mieux, on n'a pas ton projet sous les yeux, on n'est pas dans ta tête pour savoir de quoi tu nous parles au fin fond de ton bureau ...
    Le Porc est un loup pour le Porc.

  15. #15
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    Je vais expliquer avec image pour être plus compréhensible
    J'ai ma feuille excel qui contient entre autre une cellule.
    J'ai mon formulaire qui contient une combobox appelée customer (on y entrera la valeur "H"



    Je clique sur le bouton juste en dessous pour charger la feuille excel de mon choix



    on voit entre autre que la textbox appelée MAX s'est chargée
    on ne voit rien d'affiché dans la combobox, maintenant, si je clique sur le menu déroulant, la valeur "H" s'est bien ajoutée.



    Je peux effectivement l'afficher en cliquant dessus et ce que j'essaye de faire, c'est que la valeur "H" s'affiche quand je charge la feuille excel, tout comme pour la textbox MAX

    Autrement dit, j'aimerais que la figure 2 soit en fait :



    J'espère que j'ai été plus explicite

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    combobox.selecteditem ou combobox.selectedindex
    Il serait bien, encore une fois, de chercher un peu...
    Le Porc est un loup pour le Porc.

  17. #17
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    j'avais essaye le selectedItem en faisant mon_combobox.selectedItem mais j'ai un retour d'erreur
    un acces a la propriete doit assigner la propriete ou utiliser sa valeur
    sur msdn, ils me disent de changer d'operateur d'assignation

  18. #18
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    ...
    UN PEU DE RECHERCHE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    combobox.selecteditem = mavaleurquejeveuxselectionner
    ou
    combobox.selectedindex = l_indexdemavaleurquejeveuxselectionner
    Le Porc est un loup pour le Porc.

  19. #19
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    cela fonctionne maintenant et merci beaucoup
    je vais essayer de faire la même chose a savoir afficher la valeur contenue dans la cellule excel MEME si elle est deja existante dans le combobox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    rng = CType(Me.xlWorkSheetOne.Cells(10, 3), Microsoft.Office.Interop.Excel.Range)
                If Not moncombobox.Items.Contains(rng.Value) Then
                    moncombobox.Items.Add(rng.Value)
                    moncombobox.SelectedItem = (rng.Value)
                Else
                    moncombobox.SelectedItem = (rng.Value)
                End If
    cela a l'air de fonctionner mais la syntaxe me dérange toutefois

  20. #20
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Comme on a affaire à des strings ça fonctionne très bien.
    ça serait des objets ça serait différents mais on ne va pas s'embêter à se compliquer la vie et à s'y perdre pour rien ...

    On peut juste simplifier en mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    moncombobox.SelectedItem = (rng.Value)
    après le IF plutôt que dans le IF et le ELSE, vu que l'on fait cette action quoi qu'il arrive.
    Le Porc est un loup pour le Porc.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Charger des données dans une Combobox
    Par Badreddines dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/05/2013, 16h42
  2. [XL-2000] Ajouter une donnée dans une combobox
    Par Philindy26 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/12/2012, 20h12
  3. Afficher données dans une comboBox
    Par andy331 dans le forum C#
    Réponses: 1
    Dernier message: 01/06/2010, 09h25
  4. Réponses: 9
    Dernier message: 03/01/2008, 07h25
  5. Données dans une DBgrid
    Par camino dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/02/2004, 03h40

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