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

VBA PowerPoint Discussion :

Fermer automatiquement un userform après X secondes PPT 2013 [PPT-2013]


Sujet :

VBA PowerPoint

  1. #1
    Invité
    Invité(e)
    Par défaut Fermer automatiquement un userform après X secondes PPT 2013
    Bonjour à tous,
    Je vous présente mon problème :
    J'aimerais qu'un userform ouvert précédemment par un bouton se ferme automatiquement après x secondes, j'ai chercher sur le net et j'ai trouvé
    Application.Wait... et Aplication.OnTime...
    Mais PowerPoint me dit qu'il ne les reconnait pas !
    Comment faire ?

    Merci d'avances pour vos réponses !

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Tu peux essayer ceci :
    sur l'évènement on click du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub MonBouton_Click()
     
    UserForm1.Show vbModeless
    Call subFermeUfrm(5)
     
    End Sub
    Avec la procédure de fermeture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub subFermeUfrm(ByVal sglDureeSeconde As Single)
    Dim sglFin As Single
     
    sglFin = VBA.DateTime.Timer + sglDureeSeconde
     
    While VBA.DateTime.Timer < sglFin
        DoEvents 'permet le fonctionnement des autres processus 
    Wend
     
    Unload UserForm1
     
    End Sub
    Ce n'est pas très précis, mais bon cela pourrait te convenir.

    Cordialement

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse, je vais tester ça mais pourrait tu m'expliquer chaque ligne par exemple pour que je comprenne ce que j'écrit Exemple : subFermeUfrm(5) --> pourquoi mettre un 5 etc...
    Merci

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Hello.

    Voilà, cadence lente avec commentaires
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub MonBouton_Click()
    'procédure évènementielle (click du bouton)
     
        'ouverture du userForm, remplacer UserForm1 par le nom de ton formulaire
        'La précision vbModeless est indispensable pour que le code continue de s'exécuter
    UserForm1.Show vbModeless
        'appel de la procédure qui fermera le formulaire au bour de n secondes, ici n = 5
    Call subFermeUfrm(5)
     
    End Sub
     
    '----------------------------------- procédure de fermeture du form ---------------------
    Sub subFermeUfrm(ByVal sglDureeSeconde As Single)
    'cette prcédure fermera le formulaire au bout de sglDureeSeconde s
     
    Dim sglFin As Single
     
        'calcul de l'heure de fermeture
    sglFin = VBA.DateTime.Timer + sglDureeSeconde
     
        'Tant que ce n'est pas l'heure
    While VBA.DateTime.Timer < sglFin
        'exécuter les autres processus
        DoEvents
    Wend
     
        'décharger et fermer le formulaire. Remplacer UserForm1 par le nom de ton formulaire
    Unload UserForm1
     
    End Sub
    C'est plus clair?

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup je comprend mieux maintenant mais encore une dernière question : Ou placer toutes ces parties de code ?

  6. #6
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Si tu as déjà placé un bouton de commande, sous VBE apparaît un objet : la diapo qui contient le bouton. Dans le code associé tu trouves en haut 2 listes de choix : la première contient le nom du bouton et tu le sélectionnes, le deuxième permet de choisir l'évènement ici On_Click. Une procédure apparaît dans le corps du module et tu insères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'procédure évènementielle (click du bouton)
     
        'ouverture du userForm, remplacer UserForm1 par le nom de ton formulaire
        'La précision vbModeless est indispensable pour que le code continue de s'exécuter
    UserForm1.Show vbModeless
        'appel de la procédure qui fermera le formulaire au bour de n secondes, ici n = 5
    Call subFermeUfrm(5)
    L'autre procédure est à copier dans un module standard.

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci, j'ai enfin trouvé ma solution !
    Mais j'aurais encore une autre question (C'est la dernière) qui n'a pas trop avoir avec ma dernière question :
    Je voudrais que l'utilisateur ne puise qu'entrer que les nombres de 1 à 6 (par exemple) dans une zone de texte ( Saisie validé par un bouton) !

  8. #8
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    C'est pour quoi faire ces nombres de 1 à 6, pour la durée d'attente ?

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  9. #9
    Invité
    Invité(e)
    Par défaut
    Non, je t'explique cela n'a rien avoir, c'est juste que lorsque que l'on clique sur le bouton Continuer, ça vérifie si le nombre entré dans la première zone de texte est compris entre 2 et 5 et le nombre entré dans la deuxième zone de texte est compris entre 3 et 4 sinon cela envoie un message, voila ma question j’espère que j'ai été compréhensible xD
    Nom : Capture.PNG
Affichages : 480
Taille : 10,2 Ko

  10. #10
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Je ne vois pas ton appli, mais s'il s'agit bien d'un formulaire, cela devrait ressembler à cela
    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
    16
    Sub BtnContinuer_Click()
     
    If (Me.NomDuControleLignes < 2) Or (Me.NomDuControleLignes > 5) Then
        MsgBox "Le nombre de lignes doit être compris entre 2 et 5."
        Exit Sub
    End If
     
    If (Me.NomDuControleArchers < 2) Or (Me.NomDuControleArchers > 5) Then
        MsgBox "Le nombre d'archers doit être compris entre 2 et 5."
        Exit Sub
    End If
     
    'ici le contrôle est terminé
    'on peut continuer
     
    End Sub
    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  11. #11
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup ça marche enfin ^_^
    Je met du coup cette discussion en résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. redirection automatique de page apres quelques secondes
    Par marwa_marwa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/03/2013, 13h15
  2. Userform se fermant automatiquement après X secondes
    Par hbc87 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2010, 16h40
  3. Fermer automatiquement une popup après exécution de son script sous IE
    Par abir_rzg dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/03/2010, 11h56
  4. [C#] Fermer automatiquement une fenêtre après X secondes
    Par pi100 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2007, 09h35
  5. Fermer la fenetre après 5 secondes
    Par Sniper37 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/01/2006, 11h24

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