IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compter le nombre de fois où on a appuyé sur la touche Enter


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Compter le nombre de fois où on a appuyé sur la touche Enter
    Bonjour,

    Je cherche à créer une macro qui compte (et affiche dans une cellule) le nombre de fois où l'on a appuyé sur la touche Enter dans la session d'utilisation courante.
    A priori je pensais utiliser une macro "qui écoute les événements".

    J'ai pensé à une macro de ce genre, mais elle ne fonctionne pas et il manque certainement qq chose. Pourriez-vous m'aider SVP?

    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Worksheets(1).Cells(2, 1).Value = Application.OnKey({ENTER}).Count
    End Sub

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    as-tu eu le réflexe de consulter la rubrique Application.OnKey, méthode (puisque tu utilises cette méthode) ?
    Il y est exposé que :
    Cette méthode exécute une procédure spécifiée lorsque l'utilisateur appuie sur une touche ou une combinaison de touches.
    Une incrémentation de ton compteur ne peut donc être envisagée qu'à chaque utilisation de ta touche Enter et ne saurait être un compte "in fine"
    Pour satisfaire ma curiosité : quel est le propos (l'intérêt) d'un tel compte ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    En fait, j'ai un peu amélioré mon code (qui était vraiment faux):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim countPressEnter As Integer 
    countPressEnter = 0
     
    Private Sub Workbook_Activate()
        Application.OnKey "{ENTER}", "countPressTime"
    End Sub
     
    Private Sub countPressTime()
        countPressEnter = countPressEnter + 1
        Application.OnKey "{ENTER}"
    End Sub
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Worksheets(1).Cells(1, 1).Value = countPressEnter
    End Sub
    Mais un des problèmes que je rencontre aussi avec ce code est que la touche Enter ne fait plus sa fonction initiale, à savoir d'aller à la ligne. Pourtant, je pensais que rajouter la ligne Application.OnKey "{ENTER}" remédiait à ce problème...

    Merci pour votre aide!

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Mais un des problèmes que je rencontre aussi avec ce code est que la touche Enter ne fait plus sa fonction initiale, à savoir d'aller à la ligne. Pourtant, je pensais que rajouter la ligne Application.OnKey "{ENTER}" remédiait à ce problème...
    Ben oui. Et pour cause : tu as défini une autre action pour cette touche de raccourci.
    Difficile d'avoir le beurre et l'argent du beurre. Je ne sais plus (trop vieux) qui chantait une chanson dont le refrain était à peu près "tu veux ou tu veux pas ? Si tu veux, tu veux, si tu veux pas, ... etc ...)
    Et tout cela pourquoi ? (tu n'as pas répondu à cette question).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    C'est un exercice qui m'est demandé...

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    oui c'est le genre d'exercice que l'on demande mais pas en VBA !
    Sinon la présentation initiale n'est pas l'exact reflet de l'énoncé …

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    On me demande de le faire en VBA et vu mon niveau, ce n'est pas censé être trop compliqué, je crois

    Pourriez-vous me donner des pistes ou me dire si/où vous avez repéré des erreurs svp?
    Cela m'aiderait beaucoup

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    C'est un exercice qui m'est demandé...
    je crois que l'essentiel a été dit là.
    Bon exercice, donc.
    Mon aide s'arrêtera à la suggestion de cette démarche :
    1) mémoriser ce que fait normalement cette touche
    2) en transformer la vocation (par Onkey)
    3) rétablir la vocation originelle
    Je n'irai pas au-delà. C'est ton exercice et ce sera ta note.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

Discussions similaires

  1. Réponses: 16
    Dernier message: 14/09/2006, 06h43
  2. Réponses: 2
    Dernier message: 22/06/2006, 13h59
  3. Réponses: 2
    Dernier message: 23/05/2006, 18h45
  4. compter le nombre de fois qu'un fichier a été chargé
    Par phpaide dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/05/2006, 17h51
  5. Réponses: 2
    Dernier message: 06/01/2006, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo