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 :

Rafraichir un Userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut Rafraichir un Userform
    Bonjour à tous,

    J'ai créé dynamiquement un formulaire sur lequel j'ai placé un Label dont je souhaite modifier le texte pour renseigner l'utilisateur sur l'état d'avancement d'une macro au déroulement assez long.

    Or, chaque fois que je modifie le Label1.Caption, le texte reste inchangé, malgré le Repaint du formulaire.

    Que faut-il coder pour pallier ce problème.

    Merci d'avance

  2. #2
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour

    as tu essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Label1.Caption="XX"
    DoEvents ' Pour redonner la main a Windows
    Moi j'utilise aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StatusBar = "XXXX"
    Tu dis

    bon courage

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Rien n'a d'effet

    Voici la source de test
    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
    Sub CreateUserForm()
    Set UsfObj = ThisWorkbook.VBProject.VBComponents.Add(3)
      With UsfObj
        .Properties("Caption") = "Message d'attente"
        .Properties("Left") = 20
        .Properties("Top") = 20
        .Properties("Width") = 240
        .Properties("Height") = 100
      End With
      Msg = "Traitement en cours" & Chr(10) & "Veuillez patienter"
      Set L1 = UsfObj.Designer.Controls.Add("forms.Label.1", "Label1", True)
      With L1
        .AutoSize = False
        .Caption = Msg
        .Left = 0
        .Top = 0
        .Width = 240
        .Height = 100
        .Name = "Label1"
        .Font.Bold = False
        .Font.Size = 10
      End With
      ShowUsf
      Msg = "Test"
      L1.Caption = Msg
      DoEvents
      Application.StatusBar = "xxx"
    End Sub
    La première valeur de Msg reste affichée.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu...
    bonsoir

    je constate que dans ta macro tu donne la valeur "test" a ton label

    mais si tu veux le modifier dynamiquement pendant la macro

    c'est dans la macro elle même tu met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    non de l'userform.label1='ce que tu veux ici

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  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
    @Defluc :

    que fait ta procédure : ?

  6. #6
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Comme je le disais, c'est du test «d'aprentissage».

    Merci à patrick, cela fonctionne avec sa solution.
    Voici le test des procédures expérimentées pour la création dynamique, la modification d'un composant et la destruction du formulaire
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Dim UsfObj As Object
    Dim L1 As MSForms.Label
    Dim Msg As String
    Sub CreateUserForm()
    Set UsfObj = ThisWorkbook.VBProject.VBComponents.Add(3)
      With UsfObj
        .Properties("Caption") = "Message d'attente"
        .Properties("Left") = 20
        .Properties("Top") = 20
        .Properties("Width") = 240
        .Properties("Height") = 100
      End With
      Msg = "Traitement en cours" & Chr(10) & "Veuillez patienter"
      Set L1 = UsfObj.Designer.Controls.Add("forms.Label.1", "Label1", True)
      With L1
        .AutoSize = False
        .Caption = Msg
        .Left = 0
        .Top = 0
        .Width = 240
        .Height = 100
        .Name = "Label1"
        .Font.Bold = False
        .Font.Size = 10
      End With
      ShowUsf
    End Sub
    Sub ShowUsf()
      UserForm1.Show vbModeless
    End Sub
    Sub DelUsf()
      With ThisWorkbook.VBProject.VBComponents
        .Remove .Item("Userform1")
      End With
    End Sub
    Sub TesText()
      Msg = "Test"
      UserForm1.Label1.Caption = Msg
    End Sub

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

Discussions similaires

  1. [VBA-E] Rafraichir le Userform pendant l'exec d'une macro
    Par amalane dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/04/2020, 15h54
  2. [XL-2013] Rafraichir mon userform
    Par maval18 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/06/2014, 12h50
  3. rafraichir Userform dans userform
    Par jdvroum dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/01/2012, 22h02
  4. [XL-2003] [UserForm] Probleme pour rafraichir, update, repaint
    Par le_niak dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/08/2009, 12h23
  5. Comment rafraichir le swf ?
    Par oazar dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2003, 13h08

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