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 :

Choix en utilisant les flèches du clavier dans un Combobox activeX


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Par défaut Choix en utilisant les flèches du clavier dans un Combobox activeX
    Bonjour à tous,

    j'ai un combobox activeX sur une feuille de calcule qui suit la cellule active.
    Sur l'évenement "Change" de ce comboBox, j'ai 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
    Private Sub CBox_Change()
    Dim celluleActive As String, decoupeNom() As String, Act As String
     
        If Me.CBox.Visible = False Then Exit Sub
     
        Debug.Print vbCr
        Debug.Print "CBox_Change()"
        Debug.Print "ActiveCell.Address: " & ActiveCell.Address
        Debug.Print "Me.CBox: " & Me.CBox
        On Error Resume Next
        celluleActive = ActiveCell.name.name
        decoupeNom = Split(celluleActive, "_")
        Act = decoupeNom(1)
     
            Debug.Print "Me.CBox <> rien"
            Set d1 = CreateObject("Scripting.Dictionary")
            tmp = "*" & UCase(Me.CBox) & "*"
            For Each c In tblChoix1
              If UCase(c) Like tmp Then d1(c) = ""
            Next c
            Me.CBox.List = d1.Keys
            withDropDown = True
     
            Debug.Print "Me.CBox = rien"
     
        Set d1 = Nothing
        ActiveCell.Value = Me.CBox
     
        If withDropDown Then Me.CBox.DropDown Else Me.CBox.Activate
        Debug.Print "ActiveCell.Value: " & ActiveCell.Value
    End Sub
    Pour faire simple, je filtre la liste selon ce qui est saisie dans la combobox.

    Ce qui m'embête, c'est que si je veux utiliser les flèches haut et bas du clavier pour sélectionner un des items, Excel chope le premier Item de la liste et le met dans sa ".Value".
    Il y a t'il une propriété qu'il faut modifier pour pouvoir se déplacer (avec les flèches haut et bas) dans la liste de la combobox?
    Merci d'avance pour vos indications.

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Vous pourriez certainement utiliser l'événement _KeyDown, capture s'il s'agit de clic sur flèche haut ou bas et pour incrémenter (+1,-1) le listindex de la combobox.
    Un contrôle sur le _Change() du même objet histoire de pouvoir bloquer l'événement au besoin par une retour de valeur booléen.

    Vous pourriez trouvez facilement des exemples sur le web, je pense.

    Pour ma part, je préférere utiliser le contrôle avec le derouleur, plutôt que de faire X cliques sur une touche du clavier.
    Mais à chacun sa manière de faire


    Bav,

  3. #3
    Membre confirmé
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Par défaut
    Bonjour mFoxy, bonjour tout le monde,

    La combo box est en saisie intuitive, donc avec peu de caractères, il ne reste plus grand chose dans les listes, d'où l'intérêt de finir la saisie avec les flèches.
    Moins de mouvement entre clavier et sourie.

    Sur le keydown, je surveille la touche "Entrée", si c'est la touche "Entrée", je fais un match dans le tableau alloué à la combobox.

    Dans une version antérieure de ce tableau, la sélection par flèche fonctionnait bien avec la saisie intuitive. Malgré mes recherches, je n'ai pas trouvé ce qui cause ce fonctionnement.

    Le classeur va bientôt être publié dans le service, donc j'ai laissé tel quel pour le moment. Maintenant je dois trouver la façon la plus cohérente d'envoyer le tableau de données de la semaine sur un autre classeur...
    Voili voilou,

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2020, 19h57
  2. Utiliser les flèches pour se déplacer dans Excel
    Par claudia17 dans le forum Excel
    Réponses: 4
    Dernier message: 30/05/2011, 21h34
  3. Réponses: 3
    Dernier message: 06/12/2007, 12h01
  4. Réponses: 8
    Dernier message: 17/12/2004, 15h58

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