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 :

Saisie semi-automatique dans combobox


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Saisie semi-automatique dans combobox
    Hello World !! How are you ??

    J'aimerais intégrer dans mon application VB6 la saisie semi-automatique dans mes combobox. Les données qui y sont contenues sont isssues de ma base de données SQL Server et comme elles sont très nombreuses, ce serait bien de faciliter la recherche pour les utilisateurs grâce à cette méthode.

    Si quelqu'un peut m'aider, j'ai essayé plusieurs implémentations mais je n'arrive à rien, et là je sèche ...

    Merci d'avance pour vos contributions !!

  2. #2
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Bonjour bonjour,


    Je ne te rappellerais pas que Google est ton ami...
    Néanmoins après avoir tapé "saisie semi-automatique dans combobox vb" sous google, et en ayant regardé les trois premiers lien...
    Je suis tombé comme par enchantement sur ce code, j'espère qu'il va te servir(disons au moins avant que ceux qui s'y connaissent vraiment, donc pas moi ^^, s'interesse à ton cas...).

    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
    Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
       'Saisie semie-automatique
       If KeyCode = vbKeyBack Then Exit Sub
       Dim inc1 As Integer
       Wcount = Len(Combo1.Text)
       If Combo1.Text = "" Then Exit Sub
       For inc1 = 0 To Combo1.ListCount - 1
          If LCase(Combo1.Text) = LCase(Left(Combo1.List(inc1), Wcount)) Then
             Combo1.Text = Combo1.Text & Mid(Combo1.List(inc1), Combo1.SelStart + 1)
             Combo1.SelStart = Wcount
             Combo1.SelLength = Len(Combo1.Text)
             Exit For
          End If
       Next inc1
    End Sub

    Je ne l'ai pas testé, donc bonne chance...


    ~~ La Praline ~~
    ... un choco sponsorisé par google... son ami...

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Tu sais quoi mon ami, ca marche parfaitement ton code !!

    Merci La praline !!

  4. #4
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Rhô c'te classe... je vais faire un screenshot et la mettre en signature ta phrase

    Bon allé, ravi d'avoir pu t'aider... Pense à mettre la balise "RESOLU" pour le prochain qui cherche la même chose que toi



    ~~ La Praline ~~
    ... un choco utile !!! qui l'eut cru !!!

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    dommage d'aller chercher chez le concurrent alors qu'il existe :
    http://vb.developpez.com/faq/?page=Controles#auto_combo

  6. #6
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Arf, je savais que ca ne pouvait pas être aussi parfait
    Gomenosaï !!!



    ~~ La Praline ~~
    ... un choco qui fait de la concurrence déloyalle...

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Veuillez pardonner ma lourdeur, mais j'aimerais placer ce code de saisie semi-automatique dans un module et le mettre en public, de sorte à pouvoir l'utiliser dans chacun de mes combobox.

    Le problème est que je ne vois pas trop comment faire.
    Faut-il passer le nom du combobox en paramètre?
    Est-ce que Me fonctionne dans un module public?

    Bref j'ai besoin de vous car je n'y arrive pas. Merci d'avance ...

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    il te faut écrire une sub que tu appellera dans chaque événement Change (ou autre) de tes combo
    oui, il faut paramétrer le nom du combo
    non, Me ne fonctionne pas dans un module

    exemple :
    dans le module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub ComboChange(Cbo As Control)
        Dim i As Integer, start As Integer
        start = Len(Cbo.Text)
        For i = 0 To Cbo.ListCount - 1
            If LCase(Left(Cbo.List(i), start)) = LCase(Cbo.Text) Then
                Cbo.Text = Cbo.List(i)
            End If
        Next
        Cbo.SelStart = start
        Cbo.SelLength = Len(Cbo.Text)
    End Sub
    dans ta form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Combo1_Change()
        ComboChange Combo1
    End Sub

Discussions similaires

  1. Saisie Semi Automatique dans un JComboBox
    Par wagui26 dans le forum Composants
    Réponses: 3
    Dernier message: 24/09/2011, 14h35
  2. Inserer saisie semi-automatique dans une macro
    Par Bib0ucH dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/08/2008, 14h45
  3. [AJAX] Saisie semi automatique dans un formulaire
    Par sebaaas dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/05/2007, 19h54
  4. Saisie semi-automatique dans un formulaire
    Par Harmony dans le forum IHM
    Réponses: 7
    Dernier message: 19/03/2007, 20h35
  5. [HTML] Supprimer la saisie semi automatique dans les balises TEXT
    Par mego dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 25/07/2006, 16h30

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