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 :

Pb de listbox (elle liste mais veut pas boxer)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Pb de listbox (elle liste mais veut pas boxer)
    Bonjour à tous,

    C'est la première fois que je poste sur ce forum je vais en profiter pour féliciter l'ensemble
    des participants non dans le but que l'on réponde plus facilement à ma question mais
    réellement pour la qualité du site.
    En effet je fait quelques macro sous excel en VBA et régulièrement je me sert des FAQ, du forum... de developpez.net car c'est sur ce site que je trouve le plus d'info pertinante.



    J'en viens à ma question,
    Dans un formulaire j'ai deux listbox. Lorsqu'on clique sur un choix de la deuxième liste
    mon code ce déroule sans problème mais arrivé à la fin je souhaite que le choix fait par
    l'utilisateur soit désélectionné.
    Dans la FAQ Excel j'ai trouvez le code suivante: UserForm1.ListBox2.ListIndex = -1
    Cela fonctionne parfaitement pour la première liste (celle qui ne déroule pas le code)
    mais impossible d'obtenir le même résultat pour la liste dont le code est en fin d'exécution.
    Ce morceau de code réactive l'ensemble du code (comme si l'utilisateur avez fait un choix dans la liste).
    En poussant plus mes recherches j'ai tentez la chose suivante:
    UserForm1.ListBox2.Selected(2) = False
    (en supposant que l'utlisateur a choisit l'item 3)
    UserForm1.ListBox2.ListIndex = -1
    mais sans bon résultat => Le code repart du début
    La seule différence que je constate entre la liste 1 & 2 c'est que la deux en plus d'avoir
    le choix de l'utilisateur "grisé" il est aussi encadré en pointillé (fait que ce soit le choix "actif").
    J'ai tenté d'être le plus clair possible mais c'est pas évident.

    Une réponse à ma question? une demi réponse? un tiers de réponse? Merci d'avance

    Crapitouille.

  2. #2
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour Crapitouille le forum peut etre un truc comme cela !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ListBox1_Click()
    If ListBox1.ListIndex = ListBox1.ListCount - 1 Then Exit Sub
    End Sub

  3. #3
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut et bienvenu
    Pas facile sans code, mais tu doit avoir un code qui s'execute quand tu selectionne une ligne de ta listBox2, donc quand tu fais listindex = -1, le code s'execute.
    Si c'est le cas il te suffit de mettre au debut de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ListBox2.listindex = -1 then Exit Sub
    Ainsi ton code ne s'executera que si une ligne est selectionné.
    En esperant t'avoir apporté une reponse, une demi reponse ou un quart de reponse
    A++
    Qwaz

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci à vous !

    Effectivement Qwazerty j'ai un code qui s'exécute quand je sélectionne une ligne de la listBox2.
    Vos réponses me permettent effectivement de stopper la reprise du code
    mais cela ne désélectionne pas le choix fait par l'utilisateur dans la liste2 malgré l'utilisation du code
    UserForm1.ListBox2.ListIndex = -1
    ou
    UserForm1.ListBox2.Selected(2) = False (en supposant que l'utilisateur a choisit l'item 3)
    UserForm1.ListBox2.ListIndex = -1
    en fin de procédure.

    Je n'ai pas posté mon code car il fonctionne bien excepté ce problème.

  5. #5
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Re
    Ben la comme ca je vois pas, tu dois avoir un paramètre différent entre tes 2 listboxs ou quelque chose dans ton code qui reselectionne une entré de ta listbox2.
    ++
    Qwaz

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    rebonjour le fil le forum en recuperant le dernier nom de la liste dans l exemple "titi" autrement recuperer le dernier nom dans une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub ListBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim x As Long
    For x = 0 To ListBox2.ListCount - 1
    If ListBox2.Selected(x) = True Then
    If ListBox2.List(x) = "titi" Then
    If x < ListBox2.ListCount - 1 Then
    ListBox2.Selected(x + 1) = True
     Else
    ListBox2.Selected(x - 1) = True
    End If: Exit Sub
    Else
    Exit For: End If: End If
    Next x
    End Sub

  7. #7
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Re
    Essai de nous mettre un fichier exemple
    ++
    Qwaz

Discussions similaires

  1. COUNT() elle compte mais n affiche pas
    Par tyberium dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/09/2006, 23h09
  2. Réponses: 13
    Dernier message: 27/06/2006, 11h20
  3. [JInternalFrame] elle veut pas apparaitre
    Par hby dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 27/04/2006, 12h30
  4. Réponses: 2
    Dernier message: 03/03/2005, 23h23

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