VBA Excel (365 EN) - UserForm qui change de taille (size)

Bonjour à tous,

Je te tiens tout d'abord à remercier les personnes qui prendront le temps de répondre à ce sujet. Je suis nouveau sur le forum mais je tiens à préciser que ce n'est pas la première fois que j'utilise des UserForm. En revanche, c'est la première fois que je rencontre ce type de problème (voir description du problème ci-dessous).

Mon problème concerne une UserForm qui change de taille et qui adapte la police des objets (Frames, buttons et autres).

Vous trouverez mon fichier Excel en PJ.

Merci pour votre aide.

G.

Bonsoir

Mon problème concerne une UserForm qui change de taille et qui adapte la police des objets (Frames, buttons et autres).

Vous voulez quoi en fait ? je ne comprends pas votre problème

Cordialement

Bonsoir,

et ceci :

If UserForm1.OptionButton2 = True Then
    UserForm1.OptionButton1 = Flase
Else
    'Do nothing
End If

n'a rien à faire là, c'est le principe des boutons radio, ou OptionButton : un seul (par groupe) est sélectionnable à la fois.

Votre demande est-elle : comment gérer l'aperçu de mon USF en fonction des différents choix effectué par l'utilisateur ?

@ bientôt, et coucou Dan !

LouReeD

Bonjour Dan et LouReed,

LouReed,

Effectivement, il n'y a pas besoin de cette partie (merci pour l'info ;-) même si je pense que cela ne concerne pas mon problème). Comment fait-on pour dissocier les groupes ? En utilisant les Frames ?

Dan,

En effet, mon problème expliqué de cette manière n'est pas très clair... Je reformule et précise :

1. Mon UserForm a des dimensions fixes à son lancement que je réinitialise à l'ouverture de l'UserForm pour être sûr de sa taille (peut-être une erreur ?)

2. Très souvent, l'UserForm n'a pas les dimensions indiquées et à changer la taille de la police des textes (en tout cas les proportions sont étranges). Si je clique sur les OptionButtons qui redimensionnent l'UserForm, les dimensions de l'UserForm se mettent aux valeurs indiquées et remettent la police des textes à la taille définie dans la fenêtre développeur. Est-ce lié à la résolution de mes écrans ? Cet aspect se répète sur mes deux écrans (portable et fixe, l'écran fixe est connecté à l'ordinateur portable) ?

3. Lorsque je ferme l'UserForm, les dimensions de l'UserForm indiquées dans la fenêtre "Propriétés" ont changées (l'UserForm s'est rétrécie). Si je répète l'opération (ouvrir et fermer l'UserForm), l'UserForm continue de se rétrécir et tous les éléments à l'intérieur rétricissent également. En revanche, si j'ajuste les dimensions de l'UserForm manuellement, les éléments internes reviennent à la taille initiale.

D'où peut provenir se problème de dimension de mon UserForm ? Code, option, etc.

J'espère avoir été plus précis concernant mon problème.

Merci pour votre support.

Cordialement,

Guillaume

Bonjour,

je ne remarque rien d'anormal. peux-tu mettre une séquence à suivre pour reproduire le problème ?

2. Très souvent, l'UserForm n'a pas les dimensions indiquées et à changer la taille de la police des textes (en tout cas les proportions sont étranges). Si je clique sur les OptionButtons qui redimensionnent l'UserForm, les dimensions de l'UserForm se mettent aux valeurs indiquées et remettent la police des textes à la taille définie dans la fenêtre développeur. Est-ce lié à la résolution de mes écrans ?

Si vous agrandissez votre userform via les instructions que je vois dans votre code, je ne vois donc rien d'anormal à cela sachant que si vous voulez votre userform plus grande, cela me semble logique que les polices et objets suivent dans une proportion qui tient compte de ce qui demandé dans le code.
Cela est certainement calculé par excel. Un genre de pourcentage entre l'userform de départ et l'userform visualisée après exécution du code.

3. Lorsque je ferme l'UserForm, les dimensions de l'UserForm indiquées dans la fenêtre "Propriétés" ont changées (l'UserForm s'est rétrécie). Si je répète l'opération (ouvrir et fermer l'UserForm), l'UserForm continue de se rétrécir et tous les éléments à l'intérieur rétricissent également. En revanche, si j'ajuste les dimensions de l'UserForm manuellement, les éléments internes reviennent à la taille initiale.

Pas sûr d'avoir compris là... si vous ouvrez l'userform puis vous cliquez sur un bouton d'option, le code est exécuté. Si vous fermez ensuite l'userform, la dimension de l'userform et celles des objets reviennent à ce que vous avez défini dans les propriétés de chaque objet.

Si vous voulez agir vraiment sur chaque paramètre indépendamment, je pense que la seule solution est de passer par les module de classe qui offrent plus de possibilité mais qui complexifient aussi le code

Cordialement

Bonjour à tous,

Je tiens à m'excusez pour ma réponse tardive. Je pense avoir trouvé la solution mais je ne comprends pas pourquoi cela a résolu le problème.

Le programme d'initialisation de mon UserForm se nommait "Private Sub Initialize()". J'ai remplacé ce nom par "Private Sub UserForm_Initialize()" et le problème s'est résolu.

Je tiens à vous remercier pour vos réponses.

J'espère à bientôt sur le forum.

Bon weekend,

Guillaume

Le programme d'initialisation de mon UserForm se nommait "Private Sub Initialize()". J'ai remplacé ce nom par "Private Sub UserForm_Initialize()" et le problème s'est résolu

Pourtant sur votre fichier posté c'est bien ce code Private Sub UserForm_Initialize().
Mais à la suite de votre remarque et comme je l'ai encore dit sur un autre fil, il ne faut jamais changer cette instruction. Quelque soit l'userform, l'ouverture se fait toujours par le code Private Sub UserForm_Initialize()
le mieux est de prendre les listes déroulantes dans l'éditeur VBA. De cette sorte on ne se trompe jamais

Cordialement

Edit : Ah si effectivement dans votre fichier posté le code était ceci --> Private Sub Userform_Intialize(), il manquait un i devant le t. Donc utilisez les menus au lieu d'écrire manuellement

Bien vu Dan !

@ bientôt

LouReeD

Salut,

Si je devais faire cet UserForm je mettrais tous mes contrôle pendant la conception de la feuille ensuite je jouerais sur les propriétés Visible, Top et left Pour les afficher dans la fenêtre redimensionnée.

Concernant les Chekbox, mettre des bouton radio en lieu et place ou bien en code

    With Me
        .OptionButton1 = .OptionButton2 Xor 1
        .Height = 210
        .Width = 425
        '...
' // Ou bien
With Me
        .OptionButton1 = Not .OptionButton2
        .Height = 210
        .Width = 425
        '...

Ou bien

Rechercher des sujets similaires à "vba 365 userform qui change taille size"