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 :

[VBA-E]fenetre pop-up à minuterie et toujours au premier plan


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut [VBA-E]fenetre pop-up à minuterie et toujours au premier plan
    Bonjour à tous

    Je souhaite réalisé une fenetre pop-up type userform qui apparaitrai tous les 1/4 d'heure
    mais cela en laissant la main à l'utilisateur pendant le decompte.

    1) eh oui premièrement est-ce possible ?
    2) faut-il créer une fonction ou existe-t-il qqch pour ça (je ne sais pas du tout ou chercher)

    Merci d'avance à ceux qui accepterons ma requète !!!

  2. #2
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Citation Envoyé par Ania
    1) eh oui premièrement est-ce possible ?
    c'est tout a fait possible

    Citation Envoyé par Ania
    2) faut-il créer une fonction ou existe-t-il qqch pour ça (je ne sais pas du tout ou chercher)
    tu peux utiliser le controle Timer ou la fonction Timer (Confere aide en ligne) pour realiser cela.

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu ve la faire apparaitre tous les 1/4h ... utilise Application.Ontime (voir ) .. sinon une fois qu'elle est apparu comment disparait'elle..? doit'elle se fermer toutes seule... ou on rajoute un popup tous les 1/4 h...? ou bien à chaque fois que l'opérateur la ferme on attends 1/4h puis on l'affiche à nouveau...?

  4. #4
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut
    Il s'agit en fait d'une de client à rappeler à partir d'une certaine date.
    Son fonctionnement serait plutot la 2e proposition

    apres un peu de reflexion j'en suis arrivé à ca :


    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
    Private Sub Workbook_Open()  
      Rappel = False  
      Load ufRappelClient  
     
      For i = 2 To 65536 'Boucle de recherche et ajout des noms dans la liste
        With Worksheets("Chantiers en cours")
          If .Cells(i, 1) <> "" And .Cells(i, 25) < .Cells(1, 35) Then
            .Range(.Cells(i, 1), .Cells(i, 33)).Font.Bold = True
            .Range(.Cells(i, 1), .Cells(i, 33)).Font.Size = 12
            .Range(.Cells(i, 1), .Cells(i, 33)).Interior.ColorIndex = 3
            ufRappelClient.lbClient.AddItem Cells(i, 1).Text
          ElseIf .Cells(i, 1) = "" And .Cells(i + 1, 1) = "" Then
            Exit For
          End If
        End With
      Next i
     
      ufRappelClient.Show     'Appel de la form qui affiche la liste des clients
    End Sub
    La form est toute simple (une liste et 2 boutons "OK" et "RAPPEL")
    Ok : permet d'arreter la minuterie
    RAPPEL permet de continuer la relance

    et voici comment j'ai codé mes boutons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub cmdOK_Click()
      Rappel = False
      Unload Me
    End Sub
     
    Private Sub cmdRappel_Click()
      Application.OnTime Now + TimeValue("00:15:00"), "ufRappelClient.Show"
      Unload Me
    End Sub
    Seulement ca ne marche pas
    faut-il que je crée une boucle dans la Sub workbook_open() avec des pauses ?

    J'oubliais de vous remercier pour ces premières réponses car mon post était vraiment abstrait, un TRES grand merci

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    crée une procédure dans un module standard qui ouvre ton userform .. puis appelle cette procédure dans le ontime...

  6. #6
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut
    Super ça marche tout bien comme il faut,

    par contre est-il possible de que cette fenetre apparaisse aussi au premier plan quand on est sur une autre application (Word, Internet...)

    Et merci beaucoup

  7. #7
    Expert confirmé
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    premier plan : Voir zorder dans l'aide en ligne

  8. #8
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut
    Ce paramètre n'est pas applicable à une form, mais seulement au élément qui la compose

  9. #9
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut
    j'ai regarder dans la FAQ, on y parle d'une fenetre qui reste toujours au premier plan. ici

    Savez-vous si elle reste au premier plan aussi devant d'autres applications (Word, Firefox...)

    Si, oui comment l'adapter pour du VBA ??

    car je l'ai inséré ainsi

    en déclaration dans la form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Const SWP_NOMOVE = 2
    Private Const SWP_NOSIZE = 1
    Private Const HWND_TOPMOST = -1
    Private Const HWND_NOTOPMOST = -2
     
    Private Declare Function SetWindowPos Lib "USER32" (ByVal hwnd As Long, _
        ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
        ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    et utilisation de la propriété Activate car Form_Load n'est pas disponible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
      SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    End Sub
    Message d'erreur lors de la compilation : Méthode ou membre de données introuvable (erreur 461)
    avec .hwnd surligner en bleu.

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    essai de modifier l'appel à ton user form du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub MonTEst()
    AppActivate Application.Caption
    UserForm1.Show
    End Sub

  11. #11
    Membre confirmé Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Par défaut
    Je te remercie ton post m'a beaucoup aidé, pour trouver la solution, que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub MonTest()
      Windows("Dossier en cours (RAPPEL).xls").Activate
     
      'Mon code
     
      Application.WindowState = xlMinimized
      Application.WindowState = xlMaximized
      ufRappelClient.Show
    End Sub
    En fait, le fait d'activer la fenetre ne la met pas au premier plan.
    Pour contourner cela je la reduis puis l'agrandis, il existe surement un autre moyen mais ca marche comme ca
    Par contre petit inconvénient pour le débogage il faut que la fenetre de Visual Basic soit minimiser ou déjà derrière sinon ça marche pô

    Encore une fois Un Grand Merci à toute l'équipe de developpez.net

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

Discussions similaires

  1. Mettre une fenetre toujours au premier plan
    Par blondelle dans le forum C++Builder
    Réponses: 26
    Dernier message: 14/01/2009, 12h46
  2. Réponses: 11
    Dernier message: 05/06/2007, 21h56
  3. [JFrame] Affichage d'une application toujours au premier plan
    Par michaeljeru dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/12/2006, 23h49
  4. programme toujours au premier plan et background grisé
    Par avogadro dans le forum Langage
    Réponses: 5
    Dernier message: 28/03/2006, 22h46
  5. [C#][.Net] Affichage d'une appli toujours au premier plan
    Par alncool dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/07/2005, 13h30

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