Simuler la touche backspace et enter en VBA

Bonjour,

J'ai une liste de personne (env. 700). De cette liste j'effectue une recherche qui m'affiche les personnes ou la personne correspondant au critère saisie en C3. Backspace puis Enter en C3 me permet de réafficher la liste entière et d'effectuer une autre recherche. Je voudrais une macro en VBA, activée par une combinaison de touche (Alt+Cmd+n, par exemple), me permettant de réafficher automatiquement la liste entière.

Un peu limité en VBA, je vous remercie du coup de main

Cordialement

Bonjour,

ce que tu décris ressemble au "filtre avancé"

peux-tu donner un bout de fichier excel ?

Bonsoir,

Effectivement j'utilise un filtre avancé.

Le process est le suivant :

1- Recherche d'un coureur dans la base de données

2- Affectation d'un N° de dossard

3- Je souhaite déclencher par une combinaison de touche la validation du numéro de dossard, la remise à zéro de la cellule de recherche C3 et le réaffichage de la base entière, en vue de la recherche d'un nouveau coureur.

En pièce jointe le fichier

Merci pour l'intérêt porté à ma requête

Cordialement

20recherche-test.zip (161.58 Ko)

En faisant Ctrl+Maj+Z ...

capture d ecran 669
20recherche-test.zip (157.84 Ko)

Bonjour Steelson,

Merci mais ce n'est pas tout à fait ça.

Je fais une recherche dans C3, par exemple "CINAC", seule la ligne "CINAC Stéphan" s'affiche. J'affecte le numéro de dossard A14, cellule en regard du nom, que je valide par enter et manuellement je reviens sur la cellule C3, Backspace efface l'entrée "CINAC" et la touche Enter permet d'afficher la base des noms dans son intégralité. Etant toujours dans C3, je peux enchaîner une seconde recherche. Je voudrais automatiser la séquence après la saisie du n° de dossard jusqu'au réaffichage de la liste des noms dans son intégralité. En fait ta macro efface uniquement la saisie dans C3.

Merci de la réactivité et de la collaboration

Cordialement

Bonjour,

en complétant ton code :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$C$3" Then
        Application.ScreenUpdating = False
        If Target <> "" Then
            Range("B3:B" & Cells(Rows.Count, 2).End(xlUp).Row).AdvancedFilter Action:=xlFilterInPlace, _
                                                                              CriteriaRange:=Range("D2:D3"), Unique:=False
        Else
            On Error Resume Next
            ActiveSheet.ShowAllData
        End If
        Target.Select
    ElseIf Target.Column = 1 And Target <> "" Then
        [C3].Select
        [C3].ClearContents
    End If
End Sub

eric

Merci mais ce n'est pas tout à fait ça.

Je fais une recherche dans C3, par exemple "CINAC", seule la ligne "CINAC Stéphan" s'affiche. J'affecte le numéro de dossard A14, cellule en regard du nom, que je valide par enter et manuellement je reviens sur la cellule C3, Backspace efface l'entrée "CINAC" et la touche Enter permet d'afficher la base des noms dans son intégralité. Etant toujours dans C3, je peux enchaîner une seconde recherche. Je voudrais automatiser la séquence après la saisie du n° de dossard jusqu'au réaffichage de la liste des noms dans son intégralité. En fait ta macro efface uniquement la saisie dans C3.

Après avoir introduit le numéro de dossard, tu fais Ctrl+Maj+Z ... et là tu te retrouves dans C3 avec la liste complète des compétiteurs.

C'est la même chose non ?

Oui ta macro est telle qu'en effaçant C3 on exécute la séquence que tu souhaites.

Bonjour Steelson,

Mea culpa. Je me suis un peu précipité et j'ai essayé ta solution dans un Excel 2011 sur un Mac, et ça ne fonctionne pas. La liste ne se réaffiche pas.

Sur PC on a bien le résultat attendu, c'est nickel !!!

Je pense que tu as compris la finalité de ma feuille excel. Si tu vois des améliorations à ma feuille, je suis preneur

Merci encore pour ton support

Cordialement

de rien

Si tu vois des améliorations à ma feuille, je suis preneur

Quand quelquechose fonctionne, mieux vaut ne pas y toucher. Surtout quand le code est aussi léger. Néanmoins ...

Mea culpa. Je me suis un peu précipité et j'ai essayé ta solution dans un Excel 2011 sur un Mac, et ça ne fonctionne pas. La liste ne se réaffiche pas.

Sur PC on a bien le résultat attendu, c'est nickel !!!

est-ce que lorsque tu supprimes manuellement sur mac la valeur de C3 la liste se réaffiche ? J'ai été surpris par ton critère à base de formule, mais si cela fonctionne !

Bonjour,

Je confirme, manuellement ça fonctionne sur Mac ???

Mais comme la feuille Excel est destinée à être utilisée sur PC, j'arrête définitivement le "développement" sur Mac. Il y a trop d'incertitudes et de comportements différents entre les deux mondes !!!

Cordialement

Rechercher des sujets similaires à "simuler touche backspace enter vba"