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 :

Attribution valeur listbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 99
    Par défaut Attribution valeur listbox
    Bonjour,
    Je cherche à selectionner une valeur d'un ListBox depuis un bouton.
    Voici ce que j'arrive à faire :

    J'ai un bouton, quand je clique dessus, cela me selectionne la valeur de la list box qui correspond à une cellule d'une feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    'NumLigne et Colonne sont passés en arguments
    'Nom represente un listbox ex : "ListBox1", "ListBox2"
        toto = Sheets("Donnees").Cells(NumLigne, Colonne)
        For i = 0 To Me.Controls(Nom).ListCount - 1
            If Me.Controls(Nom).List(i) = toto Then
                'MsgBox i
                Me.Controls(Nom).ListIndex = i
            End If
        Next i
    Ce code marche et me selectionne (pas selectionne j'entends que cela me met l'entrée en bleu) la bonne valeur, mais lorsque je print la valeur de la listbox par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox ListBox1.Value
    Cela me retourne rien (vide)
    Et si je print le listindex de la ListBox, cela me retourne bien une valeur
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    listbox :
    lundi
    mardi
    mercredi
    si c'est le mardi qui est sélectionné, cela me retourne 1 (car mardi est la 2ème valeur), mais cela ne me retoune pas "mardi"

    Merci d'avance de votre aide

  2. #2
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour iperkut,

    y a t'il plusieurs colonnes à ton controls LisBox ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 99
    Par défaut
    Bonjour,
    non qu'une seule

  4. #4
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour iperkut,

    j'ai essayé de reproduire ton problème mais sans succès, peut tu mettre tes données (réduite) sur un fichier et le transmettre ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 99
    Par défaut
    Voici la version réduite (1300 ligne de code) de mon code.
    Un jpeg est joint.
    Il faut selectionner une date dans le combobox entouré de noir et cliquer sur le comandbutton CB1.
    Cela a pour effet de saisir dans les différentes listbox les valeurs présente pour le jour selectionné dans la feuille Donnees.

    En appuyant sur le bouton CB2, on affiche la valeur du listbox ainsi que le listindex.
    Cela marche (aléatoirement) pour certains et pas pour d'autres...
    D'ou mon problème...

    PS: pour lancer la macro : CTRL + q
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  6. #6
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour iperkut,

    dans le fichier transmit, la variable NumLigne n'est pas renseignée

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 99
    Par défaut
    Citation Envoyé par sabzzz Voir le message
    bonjour iperkut,

    dans le fichier transmit, la variable NumLigne n'est pas renseignée
    Si ,NumLigne est retourné par Sub Find(Text As String, Ws As Worksheet)

    Explication du fonctionnement

    Initialisation du userform :
    Remplissage des listbox

    Click sur CommandButton14 :
    - Via la sub Find, recherche le numéro de la ligne ou se trouve la date remplie dans le ComboBox24
    - AttribuerValeur ( prend en paramatre un listbox et une colonne à laquelle il se réfère) :
    sélectionne la bonne valeur dans les listbox

  8. #8
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour iperkut,

    ce n'est pas une bonne idée d'utiliser un nom excel (Find) pour un nom de macro, et également l'utilisation du On Erreur... peut cacher d'éventuel erreur.

    tu pourrais aussi modifier comme ceci,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumLigne = Ws.Cells.Find(What:=CDate(Text), After:=Range("A1"), LookIn:....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumCol = Ws.Cells.Find(What:=CDate(Text), After:=Range("A1"), LookIn:=...
    et dans la macro CB2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ListBox11.List(ListBox11.ListIndex)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 99
    Par défaut
    Merci beaucoup, mon problème est résolu, j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListBox11.List(ListBox11.ListIndex)
    pour récupérer la valeur du lisbox et non plus
    et cela marche nikel !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 16
    Dernier message: 21/08/2008, 13h58
  2. Problème attribution valeur recordset variable
    Par bobosh dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/08/2008, 15h51
  3. Récupération valeur ListBox
    Par Jean-Luc80 dans le forum VBA Access
    Réponses: 4
    Dernier message: 20/01/2008, 19h08
  4. Récupération des valeurs ListBox
    Par Galaad dans le forum ASP
    Réponses: 3
    Dernier message: 13/06/2007, 11h41
  5. conserver valeur listbox
    Par crca dans le forum ASP
    Réponses: 13
    Dernier message: 29/04/2005, 09h55

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