Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 détection touches "supprimer" (BACKSPACE et DELETE) dans UserForm.ComboBox

Lorenzini

XLDnaute Occasionnel
Bonjour,

Comment fait-on pour détecter que la touche "Supprimer" a été activée ?
...
Dans un formulaire, j'ai 3 ComboBox.
Quand je clique dans le 1er, je peux saisir un nom ou cliquer sur la flèche vers le bas pour dérouler la liste et choisir ; jusque-là, tout va bien.
Le problème est que je me rends compte qu'avec mes petits bouts de code (voir images en pièces jointes car mon fichier, même compressé, est trop lourd), je ne sais pas comment dire :
si on appuie sur la touche BACKSPACE ou DELETE pour effacer le contenu d'un ComboBox, ne donne pas le focus à un autre contrôle !

Pouvez-vous éclairer ma lanterne ?

Merci pour toutes vos aides !
 

Pièces jointes

  • Question 001.jpg
    250.5 KB · Affichages: 18
  • Question 002.jpg
    130.5 KB · Affichages: 18
Solution
bonjour
pour capturer les évènements liés aux deux touches de suppression, il faut passer par le Keydown (! le keypress n'est PAS déclenché)

VB:
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'MsgBox KeyCode
If KeyCode = 46 Then MsgBox "vous avez effacé un caractère avec la touche ""Suppr"""
If KeyCode = 8 Then MsgBox "vous avez effacé un caracère avec la touche ""Delete"""
    
End Sub

Oneida

XLDnaute Impliqué
Bonjour,
Pige pas votre soucis. Chez moi, pas de changement de controls sur effacement

Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...

ou
www.grosfichiers.com

ou
www.transfernow.net 'fichier jusqu'a 4G
 

vgendron

XLDnaute Barbatruc
bonjour
pour capturer les évènements liés aux deux touches de suppression, il faut passer par le Keydown (! le keypress n'est PAS déclenché)

VB:
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'MsgBox KeyCode
If KeyCode = 46 Then MsgBox "vous avez effacé un caractère avec la touche ""Suppr"""
If KeyCode = 8 Then MsgBox "vous avez effacé un caracère avec la touche ""Delete"""
    
End Sub
 

Lorenzini

XLDnaute Occasionnel
Bonjour Vgendron !


MERCI, çà fonctionne super ! MERCI MERCI !!
 

Lorenzini

XLDnaute Occasionnel
j'ai une dernière question/une bizarrerie !? :
pourquoi quand j'appuie sur la touche [BACKSPACE] pour effacer l'entrée d'un ComboBox, c'est une sélection du mot qui se fait ? ... L'effacement ne s'effectue que lorsque la sélection arrive à la 1ère lettre du mot.
Serait-ce une propriété à changer de mon ComboBox ? Curieux !?
Merci
 

Oneida

XLDnaute Impliqué
hello @Oneida
pourquoi suggerer de passer par des sites tiers pour poster des fichiers
alors que
1) c'est tout à fait possible de le faire ici meme
2) on grondre presque systématiquement les gens qui le font
Bonjour,
Perso, je prend XLD quand je suis sur XLD, mais est ce qu'il y a une taille limite?
A chaque fois que j'ai propose un site tier, c'est qu'apparemment les personnes n'ont pas pu mettre a dispo sur votre site a cause de la taille du fichier ou ont suppose que cela ne serait pas impossible.
 

Lorenzini

XLDnaute Occasionnel
Bonjour Oneida,

Le problème (qu'à mon avis d'autres doivent rencontrer), c'est que même en ayant gardé QUE le strict minimum de mon fichier ; donc en ayant viré tout ce qui n'était pas indispensable pour qu'il passe le test de la balance < à 1 Mo, et bien, j'étais encore au-dessus des 2 Mo (un "chouya").
C'est dommage car j'aurais voulu avoir l'avis de personnes comme Sylvanu, Phil 69970, Vgendron, Dranreb, Patrick Toulon, pour ne citer qu'eux ! (qui m'ont tirés de bien des galères avec leurs expertises ; merci encore !).
C'est toujours intéressant pour moi d'avoir leurs avis ; c'est aussi grâce à cela que j'en apprends davantage.
Encore faut-il pouvoir arriver à s'expliquer ; chose d'autant moins facile (pour moi perso) si le fichier n'est pas joint car pas suffisamment 'lifté'...
Mais bon, après, on fait pour se débrouiller un max et puis voilà.
 

vgendron

XLDnaute Barbatruc
Hello
pour que la taille d'un fichier explose, il suffit bien souvent de pas grand chose..
exemple.. un quadrillage et / ou une MFC sur une colonne entière.. alors qu'il n'y a que quelques lignes de données, une formule recopiée sur toute la colonne.. qui n'a finalement rien à calculer.....
(d'ou un intérêt supplémentaire pour les tables strucuturées)
ca se voit tout de suite avec la taille de l'ascenceur à droite..
 

Lorenzini

XLDnaute Occasionnel
Bonjour Vgendron,

Pardon de te déranger une fois de plus ; je pense que tu es un de ceux qui est le mieux placé pour me répondre...
Je suis encore en train de plancher sur les tables (.ListObject.... et compagnie que j'ai appris grâce à toi ; merci !)

Alors... voici mon problème :

Dans un Formulaire, j'ai un ComboBox à côté duquel est placé un petit bouton (CommandButton3) sur lequel je tente depuis qq jours de développer ce que j'ai joint en images.
J'avoue que je ne sais plus par quel bout le prendre et je te promets avoir creusé la question avant de venir te déranger pour çà mais comme je n'ai pas trouvé d'autres solutions...
 

Pièces jointes

  • LOREO3_Excel_Download.xlsm
    983 KB · Affichages: 0
  • Problème traduction VBA.jpg
    185.7 KB · Affichages: 8
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…