Renommer une userform

  • Initiateur de la discussion pias
  • Date de début
P

pias

Guest
Bonsoir, le Forum

Je cherche a changer le nom ( userform1 ) dans la barre de titre dans une userform.

Ça doit être simple a faire mais il est tard et je suis fatigué et dans les recherche je rien trouvé !

Merci d’avance pour les infos.
a+
@ pias
 
D

Dan

Guest
Bonsoir,

Suis cette procédure :

1. va dans VBA via ALT+F11
2. sur ton clavier fait CTRL + R pour afficher les feuilles, modules ....
3. Appuies sur la touche F4
4. Dans La fenêtre project VB, clique sur le dossier feuilles pour afficher les USF disponibles. (ton USF s'affiche dans la fenetre de droite)
5. Dans la fenetre propriétés (en dessous de la fenetre project VBA), sélectionne l'onglet "Alphabétique"
6. Dans la rbique "name", tu peux changer le non de ton USF.

Espérant t'avoir aidé

@+

Dan
 
L

LaurentTBT

Guest
Bonjour à tous.

Ce qu'explique Dan permet de modifier le nom du UserForm, et donc la façon de l'appeler en effet dans les lignes de code VBA.

Mais je ne crois pas que cela modifie ce qui apparait dans la barre de titre du Userform lorsqu'il s'affiche à l'écran. C'est du moins ce que j'ai cru comprendre du souhait de Pias.

Pour cela, c'est la propriété "Caption" qu'il faut utiliser, soit directement dans la fenêtre "propriétés" du Userform selon la procédure indiquée par Dan, soit, si l'on souhaite que ce titre change au grès de l'application et des macros, en utilisant ce code:
TonUserForm.Caption="Le titre que tu souhaite"

En espérant avoir bien compris la question, je vous souhaite à tous un excellent week-end.

Laurent.
 
D

Dan

Guest
Bonjour Pias, GClaire, Laurent,

Exact Laurent, j'avais omis d'expliquer ce petit détail car en effet en suivant ma procédure ce qui va apparaitre dans le programme en cours d'utilisation ne sera pas changé.
Pour ce faire, il faudra, comme tu le dis, changer le libellé en regard de la rubrique "Caption" qui se trouve également dans "propriétés" onglet "alphabétique" un peu plus bas que "Name".

Merci Laurent de l'avoir précisé.

Reste plus que voir si cela convient à Pias.

Bon samedi !!

@+

Dan
 
P

pias

Guest
Bonjour à tous

Après une nuit de sommeil me voilà de retour pour constater combien ce forum est sympathique et très utile à la fois, grâce au dévouement de tous les gens que prennent le temps de répondre aux questions.

Effectivement Laurent TBT a raison et son but de code me suffit, et grâce aux réponses de Dan et G’Claire j’ai appris un peu plus.

Merci beaucoup a tous
Amicalement
@pias
 
P

pias

Guest
Rebonjour, LaurentTBT et le forum


TonUserForm.Caption="Le titre que tu souhaite"

Comme j'ai le dit dans le message pécedent ta petit formule me convient.

Mais j'aimerais savoir encore deux petites choses a ce sujet:

1- Comment centré le titre dans la barre de titre du Userform ?

2 - Est-ce que on peut récuperer "Le titre que tu souhaite" dans une liste au tout simplement dans une cellule de la feuille2 parexemple ?

Voila si j'ai une réponse c'est bien sinon ... c'est pas grave !

Merci d'avance
@pias
 
L

LaurentTBT

Guest
Bonsoir à tous.

Pour la question n°2, pas de problème: par exemple, si le titre que tu souhaites retrouver est en cellule B3 de la Feuil1, il suffit d'écrire:
UserForm1.caption=worksheets("Feuil1").range("B3")
Pour une liste, si cette liste est insérée dans ta feuille excel, le mieux est de lier cette liste à une cellule et de revenir à la solution ci-dessus. Si cette liste est dans un Userform (et même éventuellement un autre que celui dont tu veux changer le titre), alors le code devrait être tout simplement:
UserForm1.Caption=UserForm2.Combobox1

Pour la question n°1, non ce n'est pas prévu dans les propriétés des UserForms de jouer sur la barre de titre, à part la propriété Caption qui donne donc le contenu.

A moins de ruser, hihi: voici mon petit truc:

Tout d'abord, je cherche la police utilisée dans cette barre de titre. Cette police est définie par windows, car elle est commune à toutes les fenêtres.
Par un clic droit sur le bureau windows, j'obtiens un menu, et je choisis "Propriétés". Ensuite, je regarde dans l'onglet "Apparence"
Là, on me présente justement l'apparence des fenêtres. Le détail est donné en dessous, dans la liste "Elément" sous windows 98, où via un bouton "avancé" sous windows XP. Pour les autres OS, ce doit être aussi accessible.
Enfin, dans cette liste, je choisis "Barre de titre active", ce qui me permets de découvrir quelle est la police utilisée, sa taille, et si c'est en gras ou en italique.

Bon, passons au code:
Dans mon UserForm1, je rajoute un label, dont je fixe dans la fenêtre propriété les points suivants:
Je lui donne la même police, avec taille et attributs (gras ou italique) identique à celle des fenêtres de Windows.
Je lui impose encore 3 propriétés:
WordWrap à False, Autosize à true et enfin, je le masque (visible=false).

Maintenant, l'astuce est la suivante: dans le code qui doit modifier la barre de titre du UserForm, voilà ce que j'écris, en ayant défini auparavant une variable Dim Espaces as Byte

Me.Label1 = Worksheets("Feuil1").Range("B3") 'voir question n°1
Do Until Me.Label1.Width >= Me.InsideWidth
Me.Label1 = " " & Me.Label1 & " "
Espaces = Espaces + 1
Loop
Me.Caption = Mid(Me.Label1, 2, Len(Me.Label1) - Espaces)

En fait, tu l'as compris, je calcule le nombre d'espaces qu'il faut rajouter devant (et donc autant derrière) pour que le texte soit centré. Et je ruse en utilisant un label qui s'ajuste automatiquement en taille.


Bon, il fallait vraiment avoir l'esprit tordu, n'est-ce-pas? Mais quelle idée que de vouloir centrer le titre d'un UserForm... lol

Pas peu fier de cette invention, je vous souhaite à tous une excellente soirée.
 
P

pias

Guest
Bonsoir, LaurentTBT et le Forum

Bravo LaurentTBT, l'espirit tordu ou pas l'important c'est que ça marche, et le moins que on puisse dire c'est que ça marche même très bien.

Alors je te dis en grand merci et bravo encore.

Amicalement
@pias
 
D

Dan

Guest
Re ,

Oups !
smiley_163.gif


@+

Dan
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 023
Membres
104 007
dernier inscrit
Monvieux