Macro ne s'execute pas

Bonjour à tous

Besoin de votre aide.

Je rencontre un problème d'exécution avec Application.OnTime TimeValue.

Pour me faire commprendre j'ai créé l'exemple ci-dessous, avec fichier joint.

Dans le classeur, dans thisWorkbook j'ai cette ligne de commande pour qu'une macro s'excute à heure fixe

Private Sub Workbook_Open()

Application.OnTime TimeValue("08:00:00"), "Module1.Test"

End Sub

Concernant la macro dans le module1 un code tout simple,, on active la feuil2 du classeur.

Sub Test()

Sheets("Feuil2").Activate

End Sub

Cette exemple fonctionne trés bien à une exeption, si j'écris dans une cellule de la feuil1 et que le curseur reste dans la cellule la macro ne s'applique pas.

Comment faire pour que la macro s'applique en cas de présence du curseur dans une cellule.

Dans le fichier il y a une capture d'écran.

Merci pour votre aide.

17exemple.xlsm (19.92 Ko)

Bonjour,

Quand tu saisis quelque chose, tu occupes l'application, elle attend que tu aies fini.

Si tu abandonnes ta saisie en cours sans conclure, tu continues de l'occuper. Elle continue d'attendre.

Donc, quand tu fais quelque chose, tu vas au bout, tu valides (ou tu annules) mais tu évites de laisser en l'état !

Bonsoir MFerrand

Je suis d'accord avec ton raisonnement et recherche justement une solution.

Donc, quand tu fais quelque chose, tu vas au bout

Pour cette partie aller jusqu'au bout, dans la situation réel d'utilisation du classeur, c'est l'opérateur qui va penser après la saisie de cliquer sur le bouton VALIDER qui créer l'enregistrement et Application.OnTime TimeValue("08:00:00"), "Module1.Test" et justement la pour enregistrer les données si l'opérateur oubli de cliquer sur le bouton VALIDER.

(ou tu annules)

Pour annuler l'opérateur après la saisie doit penser à sélectionne une cellule sans saisie derrière et la macro lancer par Application.OnTime TimeValue("08:00:00"), "Module1.Test" va s'appliquer.

mais tu évites de laisser en l'état !

La est mon problème comment ne pas laisser en état, pour que la macro s'exécute, sans l'intervention de 'opérateur qui a oublié de terminer sa saisie et de valider.

Comment faire en VBA pour faire continuer ma macro du à l'oubli de l'opérateur de ne pas laisser dans une cellule une saisie encours.

Merci pour toutes vos réponses.

Si l'opérateur commence à saisir, et s'arrête au milieu et part faire autre chose... Tu changes d'opérateur !

Bonjour, et ceci ne peut pas faire l'affaire ?

sans titre

MFerrand Cette solution n'est pas envisageable.

Machin Celle-ci non plus la macro qui est exécuté exporte des données dans un autre classeur.

Il doit bien y avoir une solution ?

A votre écoute.

Ecoute ! Très sincèrement ton problème est purement ridicule !!

Commencer à taper dans une cellule, s'interrompre en laissant le curseur en cours d'une saisie, aucun utilisateur, même débutant, même ne connaissant pas Excel, ne le fait !!!

C'est donc un cas d'école entièrement hypothétique.

Cela ne concerne pas qu'Excel d'ailleurs, c'est vrai pour toute application et également pour Windows...

En tout état de cause, la procédure sera exécutée dès que l'application reprendra la main, ce qui arrivera inévitablement (sauf si l'utilisateur le fait intentionnellement, mais il ne peut alors que fermer le fichier...)

Cordialement

Je suis du même avis que MFerrand et pour le paraphraser succinctement, gardez en tête qu'excel s'adapte aux limites de l'homme et inversement.

Vous faite votre maximum pour apporter une solution avec un niveau d’exigence qui ne peut être atteint, peut-être pourriez-vous conclure sur le niveau en dessous en expliquant que ce n'est pas de votre fait s'il existe une limite logiciel.

Bonsoir

Merci à vous d'avoir pris le temps d'échanger sur le sujet.

je suis tout à fait d'accord avec vous l'opérateur doit penser à terminer la saisie jusqu'au bout et celle-ci se termine par un clic sur le bouton.

Bonne soirée.

Rechercher des sujets similaires à "macro execute pas"