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 :

Comment Modifier .Caption dans UserForm1


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Comment Modifier .Caption dans UserForm1
    Bonjour,

    J'ai un UserForm qui contient un Multipage, qui contient des checkboxs. Mon objectif : modifier la propriété caption de ces checkboxs.
    Mon code tourne normalement lorsque je l'exécute mais la propriété caption reste toujour la même !? Pourquoi ?

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test ()
    i = 4
     
    For Each CTRL In UF_Questionnaire.MultiPage1.Pages(Page1).Controls  
    If TypeOf CTRL Is MSForms.CheckBox Then
                CTRL.Caption = "i"
                i = i + 1
    End If
    Next CTRL
    End Sub
    Merci !

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci. Mais ça ne règle pas le problème. Précision : Lorsque je demande à mon code de m'afficher la propriété caption et de l'afficher dans un msgbox : pas de problème. Donc c'est vraiment le fait de modifier la propriété qui bug. Une synthaxe que je ne connais pas peut être. Merci de votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        For Each CTRL In UF_Questionnaire.MultiPage1.Pages(Page1).Controls
            If Not TypeOf CTRL Is MSForms.OptionButton Then
            If TypeOf CTRL Is MSForms.CheckBox Then
    '            MsgBox (CTRL.Caption)
                CTRL.Object.Caption = "i"
                i = i + 1
            End If
            End If
        Next CTRL

  4. #4
    Membre du Club Avatar de Maiden002
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Points : 69
    Points
    69

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci mais ce n'est toujours pas ça. Que ce soit avec ou sans le .object la procedure s'execute sans message d'erreur mais la propriété n'est pas modifié !?

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour bguichardaz le fil essai comme cela
    attention au numero de page la premiere =0 & non 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim i As Byte, j As Control
    i = 4
    For Each j In UF_Questionnaire.MultiPage1.Pages(0).Controls
    If TypeName(j) = "CheckBox" Then
     j.Caption = i
     i = i + 1
     End If: Next
    End Sub
    avec TypeOf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i As Byte, j As Control
    i = 4
    For Each j In UF_Questionnaire.MultiPage1.Pages(0).Controls
    If TypeOf j Is MSForms.CheckBox Then
    j.Caption = i
     i = i + 1
     End If: Next
    attention balise tes codes

  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Toujours pas !!!
    Ma procédure est correcte. Ce qui semble poser problème c'est bien la synthaxe de la ligne :
    Est ce que le faîte que les contrôles soient sur un multipage pose problème ?
    Quelle différence entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CTRL.Object.Caption = i
    et
    Bon sinon je vais finir par une listbox à choix multiple sinon...

  8. #8
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    re, je viens de tester ca Marche???
    aussi bien TypeName que TypeOf

    le multipage ne pose pas de pb...

    le code je le met dans userform puis appuie sur un bouton dans l'user comment tu procedes??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    'code
    End Sub

  9. #9
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Ok merci. J'ai compris !

    En fait moi j'exécute directement la procédure dans VBE (F5) avec le module qui contient la procédure sous les yeux. En suite je dblclick sur ma userform et là je vois que le caption reste le même.

    mais si je lance la même procédure en lui demandant en plus de m'afficher la userform(.show), là la propriété caption est bien changée dans l'userform qui s'affiche !

    Conclusion la propriété caption n'est pas mis à jour dans l'affichage VBE lorsque cette dernière est modifiée via une procédure, mais caption est mise à jour si on demande l'affichage de l'userform (.show).

    bye

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/06/2011, 13h12
  2. Réponses: 12
    Dernier message: 14/04/2011, 15h55
  3. comment modifier le timeout d'une vye dans sql server 2K ?
    Par jlassira dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/10/2005, 11h28
  4. Comment modifier une page affichée dans un TWebBrowser ?
    Par dreamincoco dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/03/2005, 14h07
  5. Comment modifier la taille de la police dans Word ?
    Par djoao dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 11/12/2004, 12h49

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