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 :

Evènement Click ne fonctionne pas sur une combo box si la valeur cherchée et déjà celle selectionnée


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Juillet 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM

    Informations forums :
    Inscription : Juillet 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Evènement Click ne fonctionne pas sur une combo box si la valeur cherchée et déjà celle selectionnée
    Bonjour,

    J'ai une Combobox avec différentes valeurs.
    J'y ai ajouté un evenement click pour déclencher un code VBA.
    Mais voilà, l'évènement click ne fonctionne que si je change la valeur de la liste.

    Pour être plus précis, voilà ce que je fais :
    Ma liste déroulante et saisissable, et lorsque je saisis quelque chose dans ma combobox, la liste est recalculée pour faire une liste de type 'contient la valeur tapée' (avec un évènement Change, je recalcule la liste déroulante).

    Par exemple, si je tape "pomme" ma liste déroulante affiche
    pomme
    pomme rouge
    pomme verte
    grosse pomme

    SI je click sur pomme rouge mon évènement Click se déclenche bien.
    Mais pas si je click sur pomme car cette valeur est déjà celle de ma combobox.

    Je ne sais pas si je suis bien claire.

    Est ce que vous avez déjà eu ce PB ? Avez vous une solution ?

    Je me demande du coup si l'évènement click fonctionne si il n'y a qu'une valeur dans la liste déroulante et qu'elle est déjà saisie.

    Merci beaucoup pour votre aide;

    Julien

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour,
    une idée:
    dans la macro qui ajoute le contenu tapé dans la combobox tu peux mettre à la fin de ta macro par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'sélectionne l'entrée vide de la combo
    Me.ComboBox1.ListIndex = -1
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

  3. #3
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    bonjour,
    c'est simple l'hors de la saisi tu fais Entrer!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 13 Then ComboBox1_Click()
    End Sub

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Juillet 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM

    Informations forums :
    Inscription : Juillet 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    bonjour,
    c'est simple l'hors de la saisi tu fais Entrer!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 13 Then ComboBox1_Click()
    End Sub
    Merci beaucoup pour ta réponse. Mais la touche entrée ne semble pas déclencher la fonction keypress... il ne se passe rien sur action de la touche entrée. Par contre cela fonctionne avec les autres touches

  5. #5
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Si je n'avais pas testé mon code je l'aurai précisé!

    Touche Enter, retour chariot, retour à la ligne peut importe comment tu l'appelles !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Juillet 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM

    Informations forums :
    Inscription : Juillet 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    Bonjour,
    Si je n'avais pas testé mon code je l'aurai précisé!

    Touche Enter, retour chariot, retour à la ligne peut importe comment tu l'appelles !
    Merci beauocup pour ton aide ! Il doit y avoir quelque chose que je n'ai pas compris.

    Voici mon code. Lorsque je presse la touche entrée je ne passe dans aucune de ces fonctions :-( . Comme si la touche entrée ne déclenchait rien. Car peut être qu'elle n'a rien a valider.
    Par exemple si je tape "le", ma combobox affiche beaucoup de mot "la chat, le chien, le, le vent,..."
    Le est automatiquement sélectionné, si je presse sur 'entrée', si je click etc .... il ne se passe rien.
    Par contre si je click sur "le chat", ou si je presse une autre touche "par exemple une lettre", là je passe bien dans mes fonctions keypress et change....

    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
     
    Private Sub ComboBox1_Change()
     
     If Me.ComboBox1.ListIndex = -1 Then
     If Me.ComboBox1 <> "" Then
     
       Me.ComboBox1.List = Filter(listemccombo, Me.ComboBox1.Text, True, vbTextCompare)
       Me.ComboBox1.DropDown
     
     
     End If
     
     Else
      ' ComboBox1_click
       End If
    End Sub
     
    Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    MsgBox KeyAscii
    If KeyAscii = 13 Then Call ComboBox1_click
    End Sub
     
     
    Private Sub ComboBox1_click()
    Dim texteachercher As String
     
     
        ......
     
        ComboBox1.ListIndex = -1
        ComboBox1.Activate
     
    End Sub

  7. #7
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Si tout fonctionne mais vue que dans son ensemble le code est aberrant !

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Juillet 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM

    Informations forums :
    Inscription : Juillet 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    Si tout fonctionne mais vue que dans son ensemble le code est aberrant !
    C'est possible oui c'est mon "premier code de ce genre"

    Pour ma fonction ComboBox1_click() je n'ai mis qu'un bout du code pour ne pas alourdir le message

  9. #9
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 419
    Points : 2 178
    Points
    2 178
    Par défaut
    Dans l'évènement click tu mets ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
        ComboBox1.ListIndex = -1
    Ça appel immédiatement l'évènement change?

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Juillet 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant CRM

    Informations forums :
    Inscription : Juillet 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    Dans l'évènement click tu mets ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
        ComboBox1.ListIndex = -1
    Ça appel immédiatement l'évènement change?
    Oui effectivement, ça appel immédiatement l'évènement change.



    Voici ce que j'essaie de faire : Un outil d'aide pour tagger des images :
    -J'ai une grande liste de mots dans un onglet type 'table de ref'
    -Dans ma liste déroulante au fur et à mesure que je tape mes lettre, la liste se mets à jour et se déplie.
    Pourquoi je fais ça ? car ça me permet de trouver rapidement un 'mot'
    Exemple : je tape "Cha" et je vais avoir une liste qui se déplie avec "Gros chat, Chat vert, Chat de ville, Chatte, etc"
    et je n'ai plus qu'a cliquer sur le 'bon mot'
    -Et en cliquant sur le mot, ça 'ajoute' le mot à une liste de tagg (un autre onglet) et ça efface tout et je recommence pour le mot clés suivant.

    Ainsi je peu tagger assez rapidement en ne tapant que quelques lettres + 1 clic

    Lorsque je tape un mot pas en entier et que je le sélectionne, cela fonctionne et déclenche bien les fonction. Mais si je tape le mot en entier (et il est donc automatiquement sélectionné), les touches entrée ou le click n'a plus d'effet sur la liste déroulante.

Discussions similaires

  1. [KeyDown/Up] Ne fonctionne pas sur une form
    Par Hujii dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/07/2009, 10h21
  2. Réponses: 7
    Dernier message: 20/11/2008, 10h27
  3. un control JS qui ne fonctionne pas sur une FORM
    Par redabadache3 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/12/2007, 15h43
  4. Deploiement incomplet: application ne fonctionne pas sur une autre machine
    Par Jeannot dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 21/11/2007, 18h49
  5. Fonction DISTINCT ne fonctionne pas sur une date
    Par cramouille dans le forum Access
    Réponses: 5
    Dernier message: 25/10/2006, 15h42

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