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 :

Saisie dans un ComboBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2016
    Messages : 1
    Par défaut Saisie dans un ComboBox
    Bonjour à tous et à toutes,
    Voici mon questionnement :
    J'ai une feuille de calcul contenant des adresses standard, avec une colonne VILLE.
    J'ai d'autre part une UserForm contenant une ComboBox pour rechercher une de ces adresses. La RowSource est bien définie, et quand j'utilise le formulaire, la ComboBox fonctionne bien et si je saisis à la main le début d'une ville, en majuscule ou en minuscule, j'ai bien des propositions qui s'affichent dans la ComboBox. Le problème, c'est que certaines villes sont des noms composés, comme par exemple "LE BOSQUEL", ou "SAINT-QUENTIN", ce qui complique la recherche. Je voudrais que les propositions faites par la ComboBox fonctionnent sur une partie du nom ( j'écris BOSQUEL, et la ComboBox me propose LE BOSQUEL). Quelqu'un aurait-il une idée ?
    Merci d'avance.
    Jean-Luc Werquin

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Pour faire cela, tu ne peux échapper à une boucle --->> lent et à surtout éviter de mettre dans l'évènement change (déclenché, lui, à chaque frappe, de chaque caractères).

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Je te propose une idée, mais je ne l'ai pas testée et je ne sais pas du tout si ça marche
    Comme tu veux changer la liste de ta combobox quand tu changes la valeur dans la combobox, je propose que tu travailles dans le sub ComboBox1_Change (à adapter selon le nom de ta combobox).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ComboBox1_Change()
        Dim val As String
        Dim i As Integer
        val = ComboBox1.Value
        ComboBox1.Clear         'on enlève les éléments de la liste
        For i = 1 To 100           'bouclé sur tous les éléments de la liste
            If Sheets("Source").Range("A" & i).Value Like "*" & val & "*" Then                 'si l'élément contient le mot tapé
                ComboBox1.AddItem Sheets("Source").Range("A" & i).Value                      'on l'ajoute à la liste
            End If
        Next i
    End Sub

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    du même avis que unparia (Salut Jacques !   Et bise à l'étudiante bien active sur ce forum, félicitations !),
    afin que cela soit un peu plus rapide charger l'intégralité des données dans une variable tableau et,
    à partir d'au moins trois caractères entrés, utiliser la fonction VBA Filter

    ___________________________________________________________________________________________________________
    Je suis Paris, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Exemple de recherche intuitive dans un ComboBox:


    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
     
    Dim a()
    Private Sub UserForm_Initialize()
      a = Application.Transpose([liste])
      Me.ComboBox1.List = a
    End Sub
     
    Private Sub ComboBox1_Change()
     If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
       Me.ComboBox1.List = Filter(a, Me.ComboBox1, True, vbTextCompare)
       Me.ComboBox1.DropDown
     Else
       ActiveCell = Me.ComboBox1
       Unload Me
     End If
    End Sub
    Pour d'autres exemples, faire une recherche Google: recherche intuitive combobox

    Boisgontier
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. impose la saisie dans un combobox
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2008, 19h30
  2. controler le format de saisie dans un combobox
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/03/2008, 13h26
  3. Interdire la saisie dans une combobox
    Par natie_49 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/12/2006, 12h27
  4. Vitesse de saisie dans une combobox.
    Par Delphi-ne dans le forum Delphi
    Réponses: 2
    Dernier message: 12/10/2006, 13h17
  5. [VB6] Comment faire pour annuler la saisie dans un combobox ??
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 14/06/2006, 15h16

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