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 :

Modifier le titre d'un userForm


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Par défaut Modifier le titre d'un userForm
    Bonjour

    Je souhaite modifier le titre d'un userForm depuis le code d'un module.
    Pour cela, j'ai utilisé la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    usrFormToTranslate.Caption = motTraduit
    Curieusement, le titre de mon formulaire (dans la barre bleue) n'est pas modifié, mais le nouveau titre apparaît quand même juste en dessous. Cf image jointe.
    Nom : Form.gif
Affichages : 957
Taille : 9,0 Ko

    S'agit-il d'un bogue ? Ou bien y a t-il une solution ?

    Merci d'avance.

  2. #2
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With UserForm1
            .Caption = "toto"
            .Show
        End With
    Marche très bien !

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Par défaut
    Merci pour ta réponse. J'ai essayé mais cette fois j'ai une erreur de type 438 sur l'exécution de

    En fait le processus est le suivant :

    Code associé au formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UserForm_Initialize()
    Call Translate_usrForm(Me, Me.Name)
    End sub

    Code module
    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
     
    Function Translate_usrForm(usrFormToTranslate As UserForm, UsrFormName As String) As Boolean
     
    Dim c As Range
    Dim motTraduit As String
     
    With ThisWorkbook.Sheets(csWSFORMS).Range("F:F")
        Set c = .Find(UsrFormName, LookIn:=xlValues)
    End With
    If Not c Is Nothing Then
        motTraduit = Cells(c.Row, Sheets(csWSOPTIONS).Cells(1, 2).Value).Value
        With usrFormToTranslate
            .Caption = motTraduit
            .Show
        End With
    End If

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Par défaut
    Autant pour moi ! Je ne peux pas faire un .show dans une procédure initialize()

    Mais cela ne résoud pas mon problème de titre. Lorsque je supprime l'expression .show, j'ai toujours ce sous-titre bizarre à la place de mon titre. cf gif du premier message.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 138
    Par défaut
    Finalement j'ai résolu mon problème en modifiant légèrement mon processus et en agissant sur la propriété caption sous le UserForm_Initialize(), et non pas au niveau de la fonction sous-jacente.

    Mais c'est quand même bizarre ce sous-titre. On dirait un bogue ?



    Code associé au formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UserForm_Initialize()
    Me.Caption =Translate_usrForm(Me, Me.Name)
    End sub


    Code du module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Function Translate_usrForm(usrFormToTranslate As UserForm, UsrFormName As String) As string
     
    Dim c As Range
    Dim motTraduit As String
     
    With ThisWorkbook.Sheets(csWSFORMS).Range("F:F")
        Set c = .Find(UsrFormName, LookIn:=xlValues)
    End With
    If Not c Is Nothing Then
        Translate_usrForm = Cells(c.Row, Sheets(csWSOPTIONS).Cells(1, 2).Value).Value
    End If
    End Function

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

Discussions similaires

  1. Peut-on modifier le titre de l'alert
    Par MokhTelnet dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/05/2010, 11h46
  2. Réponses: 15
    Dernier message: 06/12/2005, 18h41
  3. Réponses: 2
    Dernier message: 06/12/2005, 18h20
  4. Réponses: 4
    Dernier message: 24/11/2005, 15h18
  5. Modifier le titre des colonnes d'une DBGrid
    Par deubal dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/11/2005, 18h15

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