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 :

Actualiser une UserForm


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Par défaut Actualiser une UserForm
    Bonjour, j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Click()
            Dim nbseq As Integer, m As Integer
     
            nbseq = calculernbseq()
            For m = 1 To nbseq
                If Controls("CheckboxTemps" & m).Value = False Then
                    Controls("TextBoxTemps" & m).Text = "0"
                End If
            Next
    End Sub
    Il fonctionne, cependant je suis obligé de cliquer sur la userform pour que le 0 s'affiche.
    J'aimerais que cela se mette à jour automatiquement lorsque je décoche la checkbox

    J'ai remplacé UserForm_Click() par UserForm_MouseUp() mais cela ne foncionne pas.

    Connaissez vous une astuce pour que cela s'actualise automatiquement sachant que je ne peut pas utiliser le CheckBox_Click car les checkbox sont crées dynamiquement.

    Merci!

  2. #2
    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
    Bonjour,

    Essaies

  3. #3
    Membre confirmé
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Par défaut
    Merci de ta réponse.
    J'ai testé : Me.Repaint
    Mais en fait le problème reste le même puisque l'actualisation de la userform sera effectuer si on clic dessus.

    Il faudrait que une sorte de clique fictif

  4. #4
    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
    J'aimerais que cela se mette à jour automatiquement lorsque je décoche la checkbox
    Utilises donc un des évènements de la checkBox.

  5. #5
    Membre confirmé
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Par défaut
    La chexbox est dénifit comme ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Set Obj = UserForm3.Controls.Add("forms.checkbox.1")
            With Obj
                .Name = "CheckboxTemps" & i
                .Left = 372 
                .Top = 24 * i + 16 
                .Width = 35 
                .Height = 14 
                .Value = True
                .Font.Size = 8
                .Enabled = False
            End With
    Donc, je peux pas utiliser CheckBox_Click, je n'y ai pas accès en faisant un double clique dessus depuis la userform.
    C'est une boucle, donc mon problème es pour chaque texte box.

  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
    Je ne comprends pas
    Donc, je peux pas utiliser CheckBox_Click, je n'y ai pas accès en faisant un double clique dessus depuis la userform.
    Une fois la CheckBox créée, elle est "cliquable".
    A quoi cela servirait-il de créer une CheckBox si elle n'es pas utilisable.
    Il faut donc créer le code évènementiel qui doit lui être associer à la suite du code qui crée la CheckBox proprement dite.
    Code du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Code = "Private Sub CheckboxTemps" & i & "_Click() & Chr(10)
      Code = Code & "  ' ton code" & Chr(10)
      Code = Code & "End Sub"
      With UserForm3.CodeModule
        .InsertLines .CountOfLines + 1, Code
      End With
    Cordialement

  7. #7
    Membre confirmé
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Par défaut
    Merci Beaucoup !

    Je ne savais pas que l'on pouvais déclarer les choses ainsi, qui varient en fonction de i:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub CheckboxTemps" & i & "_Click() & Chr(10)
    Par contre du coup j'étais partis sur autre chose, et j'avais laissé tomber cette piste.
    Donc je ne peux pas non plus tester ta proposition.

    Je passe quand même le sujet en résolu ?

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Dans ton cas, j'utiliserai un module de classe de façon à rendre commune à toutes les CheckBox la procédure évènementielle et éviter la boucle.
    A mettre dans le module de classe :
    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
     
    Public WithEvents GroupeChk As MSForms.CheckBox
     
    Private Sub GroupeChk_Click()
     
        If GroupeChk.Value = False Then
     
            UserForm3.Controls("TextBoxTemps" & GroupeChk.Tag).Text = 0
     
        Else
     
            UserForm3.Controls("TextBoxTemps" & GroupeChk.Tag).Text = ""
     
        End If
     
    End Sub
    A mettre dans le module de ta Form :
    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
     
    Dim TblChk() As New Classe1 'A mettre en tête de module
     
    Private Sub UserForm_Initialize()
     
        Dim Obj As Control
        Dim I As Integer
     
     
        For I = 1 To 3 '<--adapter au nombre voulu !
     
            Set Obj = UserForm3.Controls.Add("forms.checkbox.1")
     
            With Obj
     
                .Name = "CheckboxTemps" & I
                .Left = 372
                .Top = 24 * I + 16
                .Width = 35
                .Height = 14
                .Value = True
                .Font.Size = 8
                .Enabled = True
                .Tag = I
     
            End With
     
            ReDim Preserve TblChk(1 To I)
            Set TblChk(I).GroupeChk = Obj
     
        Next I
     
    End Sub
    Hervé.

  9. #9
    Membre confirmé
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Par défaut
    Merci Hervé !

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

Discussions similaires

  1. comment actualiser une page web automatiquement ?
    Par safadev dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2006, 23h34
  2. [PHP] Comment actualiser une frame à partir d'une autre ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 28/10/2005, 12h03
  3. Réponses: 6
    Dernier message: 27/10/2005, 21h12
  4. [SWT] actualiser une fenêtre
    Par cootchy dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 17/05/2004, 10h24
  5. [SWT] actualiser une fenêtre
    Par cootchy dans le forum SWT/JFace
    Réponses: 7
    Dernier message: 15/05/2004, 23h53

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