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 :

Fermeture automatique avec message


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2020
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2020
    Messages : 107
    Par défaut Fermeture automatique avec message
    Bonjour,

    J'aimerais fermer un fichier, de manière automatique, après tant de minutes d'inactivité. Ca, j'y arrive. Le fichier s'enregistre lorsque le délai est passé, ferme le fichier si plusieurs fichiers Excel sont ouverts, ou quitte l'application s'il est le seul ouvert.

    Ce qui ne marche pas, c'est comment désactiver le message: "Voulez-vous enregistrer avant de quitter?".

    Ce que je n'arrive pas non plus à faire, c'est afficher un msgbox qui dirait, dix secondes avant la fermeture, un message du style "Le fichier va se fermer dans dix secondes", puis affiche un décompte en secondes, 9, 8, 7, 6, etc. Je voudrais que l'utilisateur n'ait pas de cases à cocher Ok (pas de cases à cocher du tout)... et je ne suis pas très fan des UserForm, que je préférerais éviter.

    Si quelqu'un a une idée, ou même un début d'idée, c'est avec plaisir qu'il peut me le partager!

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, en ce qui concerne l'affichage du message, il faut aller voir du côté de Application.DisplayAlerts.

  3. #3
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 023
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 023
    Par défaut
    Citation Envoyé par Cahlagan Voir le message
    afficher un msgbox qui dirait, dix secondes avant la fermeture, un message du style "Le fichier va se fermer dans dix secondes", puis affiche un décompte en secondes, 9, 8, 7, 6, etc.
    Bonjour,
    Pour afficher une boîte de message pendant 10 secondes (sans afficher le décompte) :

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call MsgBoxTimer("Mon message",vbOKOnly, "Mon titre", 10)

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    '----------------------------------------------------------------------------------------
    Public Function MsgBoxTimer(Message As String, Boutons As VbMsgBoxStyle, Titre As String, _
                                DuréeAffichage As Byte) As VbMsgBoxResult
    '----------------------------------------------------------------------------------------
    ' Affiche une boite de message comme MsgBox, mais avec une durée d'affichage maximale
    ' qui peut être déterminée.
    '----------------------------------------------------------------------------------------
    ' Message : Message à afficher comme pour la fonction MsgBox.
    ' Boutons : Les mêmes boutons que pour la fonction MsgBox.
    ' Titre : Le titre de la boite comme pour la fonction MsgBox.
    ' DuréeAffichege : Durée en seconde d'affichage de la boite. Sauf si un choix est fait par l'utilisateur.
    '----------------------------------------------------------------------------------------
    ' Renvoie : -1 si pas de choix, ou une constante VbMsgBoxResult comme pour MsgBox.
    '----------------------------------------------------------------------------------------
    Dim InfoBox As Object
    Set InfoBox = CreateObject("WScript.Shell")
    MsgBoxTimer = InfoBox.Popup(Message, DuréeAffichage, Titre, Boutons)
    End Function
    '----------------------------------------------------------------------------------------

    Pour afficher le décompte il faut utiliser la fonction proposée par Thierry GASPERMENT (Arkham46), mais c'est 1 200 lignes de code, et est-ce bien nécessaire ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2020
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2020
    Messages : 107
    Par défaut
    laurent_ott,

    Merci pour la solution d'affichage d'une boîte de message pendant un laps de temps! Très simple, je la conserverai précieusement!

    Je vais peut-être éviter les 1200 lignes... J'ai trouvé une solution qui affiche un décompte dans la barre de titre ("Le fichier va se fermer dans 10 secondes", puis, 9, etc), sans que cela ne provoque de saccades, comme lorsque ScreenUpdating est sur True. Même, mais ça ce n'était pas voulu, si le fichier est en arrière-plan, le message s'affiche sur celui qui est devant (pour ne pas créer de confusion, j'ai mentionné "Le fichier XX va se fermer dans 10 secondes"). Solution bricolée avec l'aide de ChatGPT, qui n'est pas toujours fiable, mais qui progresse à grande vitesse. Surtout utile lorsqu'on a besoin d'avancer vite sur un projet.

    Merci en tout cas!

Discussions similaires

  1. [XL-2016] Fermeture automatique avec lancement Macro
    Par Yamafuda dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/05/2021, 21h07
  2. [OL-2007] Exécution automatique avec test du sujet d'un message
    Par nono le golfeur dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 20/07/2010, 15h55
  3. Macro mail avec message automatique
    Par roidurif dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/05/2009, 14h31
  4. envoi automatique de messages avec Outlook
    Par kouki63 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2007, 06h19
  5. Réponses: 36
    Dernier message: 23/05/2007, 17h54

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