Fermeture automatique après inactivité

Bonjour,

Une seule macro peut tourner à la fois.

Cependant tu peux l'interrompre pour laisser le système traiter les événements en attente.

Essaie en insérant un DoEvents appelé régulièrement dans ta macro (dans une boucle par exemple).

Perso j'opterai plutôt pour une case à cocher sur feuille (ou un ToggleButton) que tu testerais pour savoir si tu dois mettre fin à ta macro. Toujours avec un DoEvents régulier dans ta macro pour traiter les événements.

Ton InputBox est trop 'prenant'.

eric

Bonjour à toi et merci pour ta réponse.

Enfaite, le but est de pouvoir fermer le fichier car il peut-être utilisé par plusieurs personne.

Si le fichier n'est pas fermé, alors les autres ne peuvent pas l'utiliser.

J'ai essayé en partagé, mais ne fonctionne pas avec les macros.

Le DoEvents marcherais mais pas si l'InputBox est ouvert et en attente, alos ne fonctionne pas.

Je joint mon fichier au cas où..

Merci pour votre aide,

13douchette4.xlsm (25.25 Ko)

Mais il ne faut pas scanner dans un Inputbox, tu t'y prends mal.

Utilise une cellule dédiée, et tu utilises son événement Change pour traiter chaque scan.

A la fin du traitement tu resélectionnes ta cellule dédiée pour préparer le scan suivant.

Ex avec B1 :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$1" Then
        ' scan validé
        ' traitement
        ' ...
        ' ...
        ' préparer scan suivant
        Application.EnableEvents = False
        [B1].ClearContents
        [B1].Select
        Application.EnableEvents = True
    End If
End Sub

Et ton programme de traitement du scan me parait scabreux. J'ai renoncé à comprendre. Tu devrais mieux préparer ton besoin et repartir d'une feuille blanche.

eric

PS : il faut absolument définir le paramètre LookAt de ton .Find() avec :=xlWhole ou :=xlPart

Sinon il dépend de la dernière recherche manuelle faite, source de bug.

eric

Rechercher des sujets similaires à "fermeture automatique inactivite"