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 6 et antérieur Discussion :

Recheche dans listbox


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 47
    Par défaut Recheche dans listbox
    Bonjour a touse.
    Voila j'ai un petit problème je vous explique.

    J'ai deux liste box .
    Un qui contient une catégorie et l'autres listbox qui affiche le contenue de cette catégorie quand on clique dessus.

    Le but du jeu serait pour moi de faire une recherche recursive de tout les élément de la list qui affiche le contenue.

    J'arrive bien a faire défilié tout les catégorie ce cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     For I = 0 To List7.ListCount
     
     List7.ListIndex = I
     toto = List7.List(I)
     
    next I
    Mais je n'arrive pas a comparer les élément un par un de l'autre listbox.
    Je fait plantage de prog a chaque fois.

    Si quelqu'un peut m'aider.

    Merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur VB6 et tout neuf en .Net
    Inscrit en
    Avril 2005
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB6 et tout neuf en .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 377
    Par défaut
    Bonjour quentingsc,

    Montre-nous le code qui plante.
    Donne-nous le message d'erreur.

    Là nous pourrons, peut-être, d'aider

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 47
    Par défaut
    voila mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    reche = Text7.Text
    On Error Resume Next
     
     For I = 0 To List7.ListCount
     
     List7.ListIndex = I
     toto = List7.List(I)
     
    For X = 0 To List8.ListCount
     
    List8.ListIndex = X
     tototr = List7.List(X)
     
    If tototr = reche Then
    X = List8.ListIndex
    Exit Sub
     
    Else
     
    Next X
     
    End If
     
     
    Next I
    Merci d'avance pour votre aide

  4. #4
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut
    petite précision :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List8.ListIndex = X
     tototr = List7.List(X)
    équivaut à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List8.ListIndex = X
     tototr = List7.Text
    Le texte de l'élément selectionné est directement retourné par la propriété Text. On utilise en général la méthode List pour connaitre un élément qui n'est pas séléctionné et ceci grace à son index. Il n'est pas non plus nécéssaire de selectionner tous les éléments un par un pour faire un traitement de la liste.
    Ainsi ton code deviendrai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    reche = Text7.Text
    On Error Resume Next
     
    For I = 0 To List7.ListCount
     
         toto = List7.List(I)
     
         For X = 0 To List8.ListCount
    
         tototr = List7.List(X)
     
         If tototr = reche Then
              X = List8.ListIndex
              Exit Sub
         Else
              Next X
         End If
     
    Next I
    Enfin ce ki est en rouge ne va pa du tout !!!
    Que tu sorte ou non prématurément d'une boucle, le next ne doit pas etre conditionnel, tu ne peux pas le mettre dans le Else !!!

    Voici donc le code épuré et débuggé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    reche = Text7.Text
     
    For I = 0 To List7.ListCount
     
         toto = List7.List(I)
     
         For X = 0 To List8.ListCount
     
              tototr = List7.List(X)
     
              If tototr = reche Then
                   List8.ListIndex = X
                   Exit Sub
              End If
     
         Next X
    
    Next I
    A quoi sert la variable toto ainsi que la boucle sur la List7 avec la variable I (ce qui est en bleu) ?

    Ton code est très très curieux.


    Et un dernier conseil :
    On ne met pas de "On Error Resume Next" lorsque l'on fait du debuggage sinon on ne voit pas où est le bug
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    bonjour
    For I = 0 To List7.ListCount - 1
    Nbr dans list = de 1 à x, index = de 0 à x-1

    Salut
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre émérite Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Par défaut
    Je pense, ProgElecT, que tu as cherché à expliquer la partie en bleu, mais si tu regarde, on peut la retirer, la variable toto n'est pas utiliser, ni l'index I (à part pour charger la variable toto). ce morceau de code est donc inutile.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

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

Discussions similaires

  1. Erreur de syntaxe clause FROM affichage Tous dans Listbox
    Par Lou Pitchoun dans le forum Access
    Réponses: 9
    Dernier message: 21/09/2005, 10h40
  2. Griser Elément dans ListBox
    Par cjacquel dans le forum MFC
    Réponses: 5
    Dernier message: 06/04/2005, 10h12
  3. Centrer un texte dans ListBox, dans OnDrawItem
    Par Sunchaser dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/03/2005, 01h46
  4. Image dans listbox
    Par jabaka dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/02/2005, 22h35
  5. [C#] Drop dans ListBox
    Par Freeman166 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/01/2005, 22h46

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