Lancer une macro Excel avec la touche Entrée

Résolu/Fermé
Splity - 8 janv. 2009 à 15:01
 Splity - 13 janv. 2009 à 11:15
Bonjour à tous,
Ca fait un petit moment que je navigue sur les forum mais je ne trouve pas de réponse à mon problème que voici :

J'ai écris une macro VBA pour faire une recherche dans un tableau. L'utilisateur saisit ses 6 critères dans 6 cellules définies puis lance la recherche par un bouton.
En parallèle au bouton, je voudrais pouvoir lancer la macro (qui existe déjà et fonctionne) avec la touche Entrée uniquement si une des cellules de saisie est active.

Voici deux de mes tentatives, qui ne marchent pas ...

Private Sub Worksheet_Change(ByVal target As Range)
If KeyAscii = "13" Then
macrorecherche
End If
End Sub

Private Sub Worksheet_Change(ByVal target As Range)
If ActiveCell.Range("A13") = True And Chr$(13) = True Then
macrorecherche
End If
End Sub

Merci de votre aide !
A voir également:

7 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
11 janv. 2009 à 15:32
bonjour

Pour que cela fonctionne il suffit de faire saisir dans des textbox insérée dans les cellules concernées.
0
ok, mais comment fait on pour insérer un texbox ou un listbox dans une cellule ?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 janv. 2009 à 14:41
bonjour

Tu sélectionnes la textbox dans la "boite outils de contrôle" tu appuies sur alt et tu cliques en glissant sur la cellule choisie et ta textbox prend la taille de ta cellule.

Ensuite tu utilises la fonction change de ta textbox pour lancer ta recherche.
0
ok, merci pour les textbox ,la zone de saisie parait plus présentable !

Par contre, j'avais déjà essayé de valider avec la touche "Entée" dans des textbox mais ça ne marchait pas non plus. Voila le code que j'ai trouvé sur un autre forum et que j'ai utilisé en l'insérant dans ma page contenant les textbox.


Private Sub tbfamille_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii = "15" Then
macrorecherche
End If

End Sub


Est ce quelqu'un pourrait me dire ce qu'il ne va pas ? ce qu'il faudrait que je change ?

Merci à vous et merci à toi gbinforme !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonjour
je n'y connait pas grand chose mais essaye pour voir de remplacer worksheet_change par worksheetselection_change
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 janv. 2009 à 10:29
bonjour

Est ce quelqu'un pourrait me dire ce qu'il ne va pas ? ce qu'il faudrait que je change ?


Il suffit de regarder l'aide excel !
Un événement KeyPress peut se déclencher lorsqu'on appuie sur l'une des touches suivantes : 

Tout caractère imprimable du clavier.


CTRL associé à un caractère de l'alphabet standard.


CTRL associé à un caractère spécial.


ESPACE


ÉCHAP. 
Un événement KeyPress ne se déclenche pas lorsque l'utilisateur appuie sur l'une des touches suivantes : 

TAB.


ENTRÉE.


Une touche de direction.


Une touche qui déplace le focus d'un contrôle à un autre. 

Donc ctrl + entrée et le code est 10 et non 15.
0
Ca veut dire qu'il n'est pas possible de lancer une macro à partir d'un textbox uniquement en appuyant sur la touche Entrée ?

Je voulais ajouter cette fonctionnalité car elle est intuitive pour les utilisateurs et évite d'aller cliquer sur le bouton "Recherche".

Si tel est le cas, tant pis, mais merci pour votre aide à tous et bravo pour ce site !
0