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 :

Temporiser en VBA un affichage d'écran dynamique [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut Temporiser en VBA un affichage d'écran dynamique
    Bonjour à tous,

    Je fais appel au forum pour résoudre un problème qui hante mes heures de vacances. Le contexte précède la question.
    Liées à une feuille de calcul, j’ai écrit plusieurs procédures (sub) dont une procédure événementielle « Private Sub Worksheet_SelectionChange(ByVal Target As Range) ». L’extrait de code (en pseudo) ci-dessous en fait partie. Il appelle des sous-procédures en fonction de la valeur de la variable sw_call. Les sous-procédures écrivent des informations sur la feuille active, après l’avoir nettoyée.
    Comme le montre le premier « Case », deux sous-procédures sont appelées à la suite ; de même, une procédure « conclusion » termine l’application.
    Toutes les sous-procédures, sauf « conclusion » bien sûr, se terminent par un msgbox « Pour continuer ». C’est le seul moyen que j’ai trouvé pour temporiser un affichage selon les souhaits de l’utilisateur. Mais ce n’est pas très élégant, d’autant plus qu’il se met en plein milieu de l’écran.
    Question :
    Quelqu’un connait-il une technique de programmation pour temporiser un affichage d’écran en fonction des souhaits de l’utilisateur tout en permettant la poursuite de l’application ?

    D’avance merci

    Harry
    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
        If target.value = but.value Then
        Application.EnableEvents = False
        Select Case sw_call
            Case Is = "1"
                Call But1(VN_inbx)
                Call But2(VN_inbx)
            Case Is = "2"
                Call But1(VN_inbx)
            Case Is = "3"
                Call But2(VN_inbx)
            Case Is = "4"
                Call But3(VN_inbx)
        End Select
        End If
        call conclusion()
    end sub

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour Harry Covair le forum regarde du côte des timers
    ex:pausse de 2 secondes
    a la fin de chaque macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Wait Now + TimeValue("00:00:2")
    tu peus aussi utiliser un userform comme boite de dialogue avantage tu peus le positionner ou tu veus sur ta feuille

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour Laetitia,
    Merci pour ta réponse.
    J'utilise le timer dans l'écran de conclusion avant de terminer l'application. Mais l'utilisateur n'a pas la main, ce qui dans le cas présent est mon souci.
    Le userform ou un bouton de commande généré par code est précisément le problème que je ne parviens pas à résoudre. En cliquant sur un bouton "OK" - ce qui génère une procédure du type Btn_OK_click -, comment revenir dans la suite du programme? Autrement dit, dans le Case 1 par exemple, un bouton ou un UF dans la feuille créée par la procédure "But1" doit revenir dans la procédure principale et exécuter la procédure "But2".
    Aurais-tu (ou quelqu'un d'autre) une idée ou une piste à me conseiller.
    Encore merci pour ta contribution.

    Harry

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

Discussions similaires

  1. [Toutes versions] Affichage plein écran + VBA Excel
    Par Laurent PEYRES dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/06/2012, 00h42
  2. [VBA-E] affichage dynamique de la valeur d'un label
    Par bandit boy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/03/2006, 15h32
  3. [VB.NET] - affichage de webcontrols dynamiquement
    Par karibouxe dans le forum ASP.NET
    Réponses: 6
    Dernier message: 15/06/2005, 11h53
  4. affichage de tableau dynamique
    Par EJ dans le forum XMLRAD
    Réponses: 12
    Dernier message: 04/06/2004, 10h58
  5. [MX 2004] Affichage du texte dynamique
    Par caramel dans le forum Flash
    Réponses: 8
    Dernier message: 29/01/2004, 16h07

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