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 :

Executer une action à partir d'un ComboBox


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut Executer une action à partir d'un ComboBox
    Bonsoir à tous.

    Je suis sur un nouveau projet, mais je suis en pleine élaboration mentale comme à chaque projet ^^.

    Et malheureusement pour moi, je ne sais pas me servir d'un ComboBox.

    Enfin, j'aimerai entrer des éléments dans une liste, et que lorsque je clique sur un des éléments, cela m'execute une action MAIS, j'aimerai qu'il y ai une action définie pour chaque élément de la liste.

    Prenons comme action un MsgBox.

    Que dois-je faire pour que ceci soit realisable silvouplait ?

    Merci d'avance et bonne soirée =)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Crée une sub pour programmer ton action, avec un parametre de type integer. passe la propriété listindex de ta combobox quant tu apelle ta sub d'action

    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
    Private Sub Combo1_Change()
      Dim Index As Intger
      Index = Combo1.ListIndex
      If Index < 0 Then Exit Sub
      Action Index
    End Sub
     
    Private Sub Action(Index As Integer)
      Select Case Index
      Case 0 To 5
        MsgBox "Vous avez sélectionné la ligne " & Index
      Case 6
        MsgBox "Gagné"
      Case Else
        MsgBox "Perdu"
      End Select
    End Sub
    Mais pour ce genre de chose, vaut mieux utiliser un composant liste qui me semble plus approprié
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

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

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Si tes actions dépendent du texte en lui même alors utilise la propriété text du combobox avec une série de if (le select case ne pouvant être appliqué à du texte)
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  4. #4
    Membre averti
    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 : 49
    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
    Points : 446
    Points
    446
    Par défaut
    Citation Envoyé par avigeilpro
    le select case ne pouvant être appliqué à du texte
    Je pense que cela mérite une explication, je n'ai pas du comprendre .
    J'utilise tous les jours du texte dans mes Select case.
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

  5. #5
    Membre averti
    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 : 49
    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
    Points : 446
    Points
    446
    Par défaut
    Essaie ceci :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Option Explicit
     
    Private mFinInitialisation As Boolean 'Indique que l'initialisation des controles est terminée
     
    Private Sub Form_Load()
      mFinInitialisation = False
     
      With Combo1
        'Indique qu'il est impossible de choisir autre chose que
        ' les éléments proposés dans la liste
        'Mettre .Style = DropDownList dans la propriété de la combo (impossible a faire par le code
     
        'Ajout des actions
        .AddItem "Action1"
        .AddItem "Action2"
        .AddItem "Action3"
     
     
        'Sélectionne l'action par défaut
        .ListIndex = 0 'Action1
      End With
     
      mFinInitialisation = True
    End Sub
     
    Private Sub Combo1_Click()
      'On utilise _Click par avec une combo DropDownList, l'événement _Change ne se produit pas
     
      If mFinInitialisation = False Then
        'L'événement Combo1_Click est déclenché par .ListIndex = 0 (dans Form_Load) pas par l'utilisateur
        Exit Sub
      End If
     
      'Sélection des actions en fonction du texte de la combo
      ' On peut aussi utiliser la propriété ListIndex, mais attention si la combo est triée .Sorted=True
      ' .ListIndex est dans l'ordre alphabétique pas dans l'ordre d'insertion !
      Select Case Combo1.Text
      Case "Action1": MsgBox "L'élement Action1 est sélectionné", vbCritical
      Case "Action2": MsgBox "L'élement Action2 est sélectionné", vbExclamation
      Case "Action3": MsgBox "L'élement Action3 est sélectionné", vbInformation
      End Select
    End Sub
    Quand tu travail avec du texte comme cela, je te conseil d'utiliser des constantes, cela évite les erreurs de frappes et le compilateur te l'indique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Const ACTION1 As String = "Action1"
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

  6. #6
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Donc je peux aussi executer mes actions grâce au texte, avec un bouton qui verifierai le text de la comboBox et qui executeras ce que je lui ai dis par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ComboBox.text = "Option Hello" then
    Call MsgBox("Vous avez selectionnez l'option Hello.", vbExclamation, "Essais")
    End if
    Déjà ca, ça marche, apres faudra que j'essaye la méthode de Delbeke.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

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

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    J'ai confondu avec Delphi Désolé, fausse info.
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  8. #8
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    xD

    Merci Najdar, j'irai essayer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  9. #9
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Donc la méthode de Najdar fonctionne et j'ai bien compris, sauf le
    Et la méthode de Delbeke, je n'ai pas encore essayé car en lisant attentivement je ne comprend pas trop, Serait il possible que tu détaille certains éléments silteplait ?

    Merci =)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  10. #10
    Membre averti
    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 : 49
    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
    Points : 446
    Points
    446
    Par défaut
    Citation Envoyé par Ramdoulou
    Donc la méthode de Najdar fonctionne et j'ai bien compris, sauf le
    Merci =)
    La propriété ListIndex indique (et permet de définir) la ligne actuellement sélectionnée. Chaque ligne ajoutée dans la combo à automatiquement un Index allant de 0 à N-1 (N étant le nombre de ligne dans la combo).

    Si aucune n'est sélectionnée ListIndex vaut -1.

    Dans l'exemple .ListIndex = 0 permet de sélectionner, par le code, la première ligne de la combo.

    J'espère avoir été claire.
    De toute façon n'hésite a faire
    Le plus difficile pour trouver une bonne réponse, c'est déjà de trouver la bonne question.

  11. #11
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Oui merci j'ai compris.

    J'attends juste une petite réponse de Delbeke au sujet de ma précédente question, avant de mettre ce topic en Résolu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  12. #12
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    En fait les deux propositions sont LOGIQUEMENT les memes. Sauf que tandis que Delbeke passe par les index (ce qui a mon avis est plutot une bonne methode), Najdar passe par les contenus (pas tres pratique, mais heureusement il se rattrape avec Combo1.Style = DropDownList ).
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  13. #13
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Justement je n'ai pu essayer la méthode de Delbeke car je n'ai pas compris son code, donc si quelqu'un pouvais détailler chaque parties, ça serait vraiment sympa.

    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

  14. #14
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    J'ai commenté les lignes, désolé, je n'ai pas pensé à ceux qui débutent dans vb

    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
    Private Sub Combo1_Change()
      Dim Index As Integer
      Index = Combo1.ListIndex   'récuperer le numero de la liste selectionée
      If Index < 0 Then Exit Sub  'si pas de ligne sélectionnée on sort
      Action Index  'Appeler la function Action en lui passant le numero de la ligne sélectionée comme argument
    End Sub
     
    Private Sub Action(NumLigne As Integer)
      Select Case NumLigne  ' on va tester le contenu de la varialble numLigne
      Case 0 To 5  'si la valeur est comprise entre 0 et 5
        MsgBox "Vous avez sélectionné la ligne " & NumLigne
      Case 6 'si la valeur est 6
        MsgBox "Gagné"
      Case Else 'dans tous les autres cas
        MsgBox "Perdu"
      End Select
    End Sub
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  15. #15
    Membre régulier Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Points : 107
    Points
    107
    Par défaut
    Enfaite j'ai compris le code, ensuite je l'ai copié/coller car je ne pense pas que, exepté le ComboBox, il faut ajouter un autre composant.

    Mais ca ne marche pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Votre clavier comporte plus de 100 touches, pourquoi utiliser le langage SMS ?

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

Discussions similaires

  1. [VB6][Débutant] Execute une commande à partir d'une chaine
    Par Bluespike62 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 09/05/2006, 16h43
  2. Executer une action à partir d'un lien JSP
    Par orus2 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/04/2006, 14h05
  3. Faire a un script executer une action sur un signal
    Par vodevil dans le forum Langage
    Réponses: 1
    Dernier message: 13/12/2005, 11h14
  4. [Struts]Executer une action sans ActionForm associé ?
    Par brousaille dans le forum Struts 1
    Réponses: 7
    Dernier message: 19/09/2005, 17h24
  5. [VB.NET] Executer une requete à partir d'un DataSet...?
    Par anthony70 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 12/07/2004, 14h17

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