Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Taille du classeur adaptée à l'UserForm

  • Initiateur de la discussion Initiateur de la discussion kuja777
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kuja777

XLDnaute Nouveau
Bonjour,

Le code
Code:
Me.Height = Application.Height /Me.Width = Application.Width
permet de tailler l'USF à l'échelle du classeur Excel.

Existe-t-il la fonction inverse, à savoir configurer la taille de mon classeur à celle de mon USF, dans le style
Code:
Workbooks("Classeur1").Height = UserForm1.Height
?

Dans l'idéal, cela ne parametrerait que le classeur nommé et non l'application?

Malgré mes recherches, je ne trouve pas de solution.

A défaut, j'avais tenté de cacher mon classeur ou de masquer mes feuilles, mais une fois caché/masqué, mon UserForm ne parvient plus à récupérer ni à envoyer les informations sur les feuilles masquées. Y a-t- il une façon de permettre au VBA de modifier les feuilles cachées?

Merci d'avance et bonne journée à tous.
 
Dernière édition:
Re : Taille du classeur adaptée à l'UserForm

Bonjour,
Tout d'abord, pardon de n'avoir pas signé de mon prénom, le temps de trouver où mettre une signature^^.

Malheureusement, messge d'erreur: la méthode Height de l'objet application a échoué, problème que j'affronte depuis le début....

Cdt

Rémy
 
Re : Taille du classeur adaptée à l'UserForm

Bonjour Rémy, Job75, et à ceux qui passeront par ici,

Tu n'as pas à t'excuser pour l'absence de prénom, ce n'est qu'accessoire.

Evite les écritures en vert clair, je ne suis pas le seul à avoir des soucis de réglage
des lunettes..... Ce n'est absolument pas lisible!
Regarde aussi à utiliser les Balises de Codes. "#"

Quant à ta question relative à Height,
Cela vient, pour moi, du fait que tu ne l'as pas préalablement précisé via VBA.
Fais le dans l'initialisation de ton USF, et dis-moi.

Amicalement

Yann
 
Re : Taille du classeur adaptée à l'UserForm

Merci Yann pour ces éléments et, promis, le vert citron ne te piquera plus les yeux dans mes posts.
En y regardant de plus près, le code était bien dans l'initialize de mon USF mais rentrait en contradiction apparente avec un bout de code que j'avais oublié dans mon workbook lors de mes tentatives de masquage de classeur.
Code:
With Application
    .ScreenUpdating = False
    .WindowState = xlMinimized
    .ScreenUpdating = True
Ce bout de code effacé, Excel s'adapte bien à la taille de mon formulaire.

Une dernère question avant de cloturer en [Résolu], est-il possible de ne configurer la taille que d'un classeur donné?
J'ai bien tenté avec
Code:
Windows("Classeur1.xls").height = UserForm1.height
ou encore
Code:
Workbooks("Classeur1.xls").height = UserForm1.height
mais sans résultats.

Merci d'avance.

Cdt

Rémy
 
Dernière édition:
Re : Taille du classeur adaptée à l'UserForm

Re Rémy,

Encore une remarque de pépé Yann

La notation "Résolu" n'existe pas sur XLD... Et c'est un bien!
Tu pourras lire à cet effet un récent Fil dont j'étais le coupable.

https://www.excel-downloads.com/threads/flemme-de-lire.147285/

A ta dernière question relative à la remise en place d'Excel,
celle-ci doit être faite par ton classeur en cours avant sa fermeture.

J'ai le cas dans une appli, il faut que je recherche.
(De plus, à finaliser mon code, car je ne l'ai pas encore fait)

A plus tard.

Yann
 
Re : Taille du classeur adaptée à l'UserForm

Re_Re Rémy,

Désolé, je suis un peu trop pris par ailleurs, et il y grand désordre dans mes archives.

Il y a cependant une solution efficace:

Après avoir fermé ton projet en cours, tu ouvres un fichier Excel (Nouveau de préférence)

Tu va immédiatement dans Outils -> Macro -> Nouvelle Macro... Puis OK.

Tu mets plein écran ta page par "Agrandir ".
Par Click droit sur la barre d'outils, tu remets en place ce que tu souhaites.

Tu va par la suite copier le contenu du "Module1" créé.
Les actions que tu viendras de faire, tu pourras les ajouter à "BeforeClose"
ou à un bouton de ton USF (Je préfère la dernière solution)

Tu me dis, mais je soupçonne que tu sauras l'adapter.

Amicalement.

Yann
 
Re : Taille du classeur adaptée à l'UserForm

Re kuja777, salut Yann,

Sans voir votre fichier, difficile de savoir ce que vous faites ou voulez faire.

A tout hasard ce fichier très simple avec

- dans le code de l'USF :

Code:
Private Sub UserForm_Initialize()
Application.WindowState = xlNormal
Application.Height = UserForm1.Height
Application.Width = UserForm1.Width
End Sub

Private Sub UserForm_QueryClose(cancel As Integer, closemode As Integer)
Application.OnTime Now, "Agrandir"
End Sub

- dans Module1 :

Code:
Sub USF()
UserForm1.Show
End Sub

Sub Agrandir()
Application.WindowState = xlMaximized
End Sub

Edit : télécharger le fichier sur le bureau pour le tester...

A+
 

Pièces jointes

Dernière édition:
Re : Taille du classeur adaptée à l'UserForm

Re,

Noter que si l'on veut interdire le déplacement de l'UserForm, il suffit d'ajouter :

Code:
Private Sub UserForm_Layout()
Me.Top = Application.Top
Me.Left = Application.Left
End Sub

Télécharger toujours sur le bureau pour tester.

A+
 

Pièces jointes

Re : Taille du classeur adaptée à l'UserForm

Bonjour à tous,

Je me permet de poser une petite question à job concernant son code :

Quelle est la différence entre
Code:
Application.OnTime Now, "Agrandir"
et un simple
Code:
Agrandir
???

a+
 
Re : Taille du classeur adaptée à l'UserForm

Salut mromain,

Quelle est la différence entre
Code:
Application.OnTime Now, "Agrandir"
et un simple
Code:
Agrandir
???

Tu aurais testé tu aurais vu que :

Code:
Private Sub UserForm_QueryClose(cancel As Integer, closemode As Integer)
Agrandir
End Sub

n'a pas d'effet sur la fenêtre Excel...

Sauf si l'UserForm a été chargé en "non modal".

A+
 
Re : Taille du classeur adaptée à l'UserForm

Bonjour le fil, le forum,

Récapitulons car on n'a pas été assez clair.

1) Si l'on charge l'USF en "non modal" par :

Code:
UserForm1.Show [COLOR="Red"]vbModeless 'ou 0[/COLOR]

on peut manipuler la fenêtre Excel quand on veut.

2) Si l'on charge l'USF en "modal", on ne peut pas manipuler la fenêtre Excel tant que l'USF est chargé. On notera que :

- UserForm_Initialize s'exécute avant le chargement de l'USF

- UserForm_QueryClose s'exécute avant le chargement de l'USF.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…