Plusieurs macros sous Worksheet_SelectionChange avec commande via touche

Bonjour,

J'ai fait le tour du forum mais, difficile de trouver une réponse.

J'ai quatre cellules qui me servent à faire des recherches, et qui doivent lancer une macro spécifique quand j'appuie sur la touche Enter.

J'arrive à faire fonctionner la dernière mais pas les autres en parallèle.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        ' Recherche par n° de Devis
    If Not Intersect(Me.Range("E4"), Target) Is Nothing Then
        ' affectation aux touches Entrée de l'exécution d'une macro
        Application.OnKey Key:="{RETURN}", procedure:="Recherche_devis_f": Application.OnKey Key:="{ENTER}", procedure:="Recherche_devis_f"
    Else
        ' restauration action standard des touches Entrée
        Application.OnKey Key:="{RETURN}": Application.OnKey Key:="{ENTER}"
    End If

        ' Recherche par Nom Prénom
    If Not Intersect(Me.Range("E6"), Target) Is Nothing Then
        ' affectation aux touches Entrée de l'exécution d'une macro
        Application.OnKey Key:="{RETURN}", procedure:="Recherche_devis_nom": Application.OnKey Key:="{ENTER}", procedure:="Recherche_devis_nom"
    Else
        ' restauration action standard des touches Entrée
        Application.OnKey Key:="{RETURN}": Application.OnKey Key:="{ENTER}"
    End If

        ' Recherche par Adresse
    If Not Intersect(Me.Range("E8"), Target) Is Nothing Then
        ' affectation aux touches Entrée de l'exécution d'une macro
        Application.OnKey Key:="{RETURN}", procedure:="Recherche_devis_adresse": Application.OnKey Key:="{ENTER}", procedure:="Recherche_devis_adresse"
    Else
        ' restauration action standard des touches Entrée
        Application.OnKey Key:="{RETURN}": Application.OnKey Key:="{ENTER}"
    End If

        ' Recherche par Ville
    If Not Intersect(Me.Range("E10"), Target) Is Nothing Then
        ' affectation aux touches Entrée de l'exécution d'une macro
        Application.OnKey Key:="{RETURN}", procedure:="Recherche_devis_ville": Application.OnKey Key:="{ENTER}", procedure:="Recherche_devis_ville"
    Else
        ' restauration action standard des touches Entrée
        Application.OnKey Key:="{RETURN}": Application.OnKey Key:="{ENTER}"
    End If

End Sub

J'ai besoin de vos lumières, merci.

Bonjour et bienvenu sur le forum

La macro évènementiel sélection change ne fonctionne pas avec la touche entrée...

Un fichier est TOUJOURS le bienvenu....

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        ' Recherche par n° de Devis
    If Not Intersect(Me.Range("E4"), Target) Is Nothing Then
       call  Recherche_devis_f 'si recherche_devis_f est une macro
    ElseIf Not Intersect(Me.Range("E6"), Target) Is Nothing Then
        ' Recherche par Nom Prénom    
           call  Recherche_devis_nom
    ElseIf Not Intersect(Me.Range("E8"), Target) Is Nothing Then
        ' Recherche par Adresse
          call Recherche_devis_adresse         
    elseIf Not Intersect(Me.Range("E10"), Target) Is Nothing Then
       ' Recherche par Ville
        call Recherche_devis_ville
    End If
End Sub
10tippedpanic.xlsm (15.26 Ko)

A+ François

Merci François, d'avoir pris le temps de me répondre.

Je te joins le fichier, ça sera plus clair.

La macro évènementielle sélection change avec la touche Enter pour l'activer. J'arrive à la faire fonctionner mais uniquement sur une cellule (E10) et pas les autres E4,E6,E8.

Sûrement parce que c'est la dernière sur la feuille de code.

Si tu tapes dans recherche ville : Onex elle marche et tu peux même effacer le filtre en appuyant sur enter encore une fois.

Mais pas le reste, veut pas...

PS les macros d'appel sont vers la fin du module 1.

5xenos.xlsm (110.42 Ko)

Bonjour Tippedpanic, fanfan38,

Pour la macro de fanfan38, essayez d'utiliser l'évènement Worksheet_Change plutôt que Worksheet_SelectionChange.

Bonjour

Je me suis battu pendant une demi journée avec tes filtres et j'ai abandonné...

Ci joint ma solution

11tippedpanic.xlsm (47.28 Ko)

A+ François

Bonjour,

Le premier code de François avec la modification de Mafraise, marche parfaitement.

Je peux faire des recherches à critère multiple tout en conservant la mise en forme conditionnelle et les diverses particularités, et on peut modifier les données du tableau dynamiquement.

C'est juste parfait, mieux ce serait moins bien.

Désolé François pour ton après-midi.

Je remets le code au propre avec la fonction recherche tableau si ça peut servir.

à mettre dans la feuille.

Private Sub Worksheet_Change(ByVal Target As Range)
        ' Recherche par n° de Devis
    If Not Intersect(Me.Range("E4"), Target) Is Nothing Then
       Call Recherche_devis_f  'si recherche_devis_f est une macro
    ElseIf Not Intersect(Me.Range("E6"), Target) Is Nothing Then
        ' Recherche par Nom Prénom
           Call Recherche_devis_nom
    ElseIf Not Intersect(Me.Range("E8"), Target) Is Nothing Then
        ' Recherche par Adresse
          Call Recherche_devis_adresse
    ElseIf Not Intersect(Me.Range("E10"), Target) Is Nothing Then
       ' Recherche par Ville
        Call Recherche_devis_ville
    End If
 End Sub

à mettre dans le module.

Sub Recherche_devis_f()

    ActiveSheet.ListObjects("Tableau3").Range.AutoFilter Field:=1, Criteria1:="=*" & Range("E4").Value & "*"

End Sub
Rechercher des sujets similaires à "macros worksheet selectionchange commande via touche"