Lancer une macro Excel avec la touche Entrée

Résolu
Splity -  
 Splity -
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 !
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Pour que cela fonctionne il suffit de faire saisir dans des textbox insérée dans les cellules concernées.
    0
  2. Splity
     
    ok, mais comment fait on pour insérer un texbox ou un listbox dans une cellule ?
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  4. Splity
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gilou
     
    bonjour
    je n'y connait pas grand chose mais essaye pour voir de remplacer worksheet_change par worksheetselection_change
    0
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  8. Splity
     
    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