Encore une sur les userforms !

H

Hélène

Guest
Salut tous les accros du dimanche ;)

Cette fois, je voudrais savoir s'il est possible d'afficher une userform à un endroit précis de l'écran, par exemple sur la droite ?
Egalement, est il possible d'afficher une userform en mode non modal, c'est à dire que l'utilisateur pourrait cliquer et faire des modifs en dehors de celle-ci ?

Merci d'avance... j'y retourne !
Hélène
 
@

@Christophe@

Guest
bonjour Hélène

Aucun problème, pour rendre ton userform non modal tu dois avoir minimum excel 2000.

Dans ton code tu marque exemple:

Userform1.show 0

le 0 est pour le non modal, regarde l'exemple d'un commandbutton

Private Sub CommandButton1_Click()
UserForm1.StartUpPosition = 3 'le place de ton userform sur l'écran
UserForm1.Show 0 'pour le non modal
End Sub


@Christophe@
 
J

Jacques

Guest
Bonjour Hélène

si tu mets dans la procédure "Initialize" le code ci-dessous,
Private Sub UserForm_Initialize()
With UserForm1
.Left = 125
.Top = 200
End With
End Sub

ta boîte de dialogue s'affichera à 125 unités depuis la gauche et à 200 depuis le haut.

Donc en fonction de la taille de ton écran et de celle de ta boîte de dialogue, tu dois pouvoir la mettre sur la droite.

exemple si tu as un affichage 800x600 et que dans ta procédure "initialize" tu mets le code suivant :
With UserForm1
.Left = 800 - .Width
.Top = 600 - .Height
End With

tu vas afficher ta boîte de dialogue dans le coin en bas à droite

J'espère que cette réponse t'aidera.

à+
 
J

Jacques

Guest
Bonjour Christophe

il me semble que

UserForm1.StartUpPosition = 3
place la boîte de dialogue dans le coin en haut à gauche ( mais je peux me tromper).
Or il me semble qu'Hélène souhaite l'afficher à droite.

à+
 
V

Vériland

Guest
Bonjour le forum,

Euh Christophe je ne sais pas si cette question répond de manière précise à hélène...

en fait il me semble qu'il soit question de la place de l'userform sur l'écran...pour cela il faut définir les paramètres de position dans VBA...

Alors Hélène, je vais essayer d'être le plus explicit...

dans VBA tu selectionnes l'userform...à gauche dans la rubrique propriétés tu prends l'onglet par cétégories...dans la partie position tu vas dans StartUpPosition...et tu définis manual...

à ce moment l'userform se place dans le coin supérieur à gauche

pour qu'il soit à droite tu changes les paramètres Left (colonnes écran) et Top (Lignes écran)

PAR EXEMPLE :

StartUpPosition : Manual
Left : 600
Top : 100

tout dépend aussi du paramètre affichage de ton écran...pour moi c'est 1152 par 864 pixels

Voilà...

A+ Vériland
 
@

@Christophe@

Guest
Correct Jacques,

cela affiche sur la gauche, mais Hélène dis: " d'afficher une userform à un endroit précis de l'écran, par exemple sur la droite ?", donc comme elle dit exemple, je me suis dis peux importe le position, c'est juste pour l'exemple.

Pour le mettre a droite, il suffit d'aller de faire comme tu dis Jacques, ou d'aller dans les propriété du userform.

@Christophe@
 
@

@+Thierry

Guest
Bonjour enfin rebonjour à tous et à Hélène.

Vite car j'ai un RV... si je ne m'abuse Jacques, la position d'un UserForm doit se faire Avant l'initialize(/b] sans essayer ta proposition, à mon avis elle ne fera rien (si elle ne plante pas) car dans UserForm_Initialize c'est TOO LATE !! lol ....... il est déjà lancé par windows...

Ceci dit, en plaçant ce code dans le commandbutton qui lancera le UserForm, ce devrait être pas mal si on peut jouer en plus avec .Width et .Height ... (à tester si çà marche, là je n'ai plus le temps d'ouvrir Excel, j'ai fait aussi un truc un jour avec ClientWidth and ClientHeight...)

Bonne Fin de Journée
@+Thierry
 
@

@Christophe@

Guest
Bonsoir Forum

Jacques, j'ai essayé ton truc, et chez moi c'est trop tard si je mets cela dans Userform_Initialize, il le centre, ce qui est normal puisque ce sont les propriété standart du userform.

Idem si dans le code que j'ai donné je mets d'abord userform1.show avant userform1.StartUpPosition = 3, il va le centré, puisque mon userform est déjà affiché, par contre en inversant les deux ligne, cela le fais.

Moi je suis Thierry, je ne vois pas comment tu y arrive de cette facon, par contre Vériland, la j'ai rien a dire, en changant les proprieté, cela le fais sans probleme, mais tous dépendra de la résolution de l'écran.


Merci

@Christophe@
 
@

@+Thierry

Guest
=> DEMO UserForm StartUpPosition EveryWhere !!! LOL

Bonsoir tous les Zamis et Zamies

Comme vous me connaissez, Jean Nez (oui oui c'est un ami à mon ami Jean Passe...) Donc j'en ai jamais la certitude tant que je n'ai pas "trifouillé" VBA dans tous les sens pour arriver à mes fins...

En initialize je ne vois pas comment tu peux faire Jacques... Mais before UserForm.show.... Il y a de quoi s'amuser....

Pour le Fun j'ai fait un fichier tout bête... avec les Deux Méthodes... C'est possible que quelque chose m'ait échappé... J'ai fait 2 Userforms avec les 2 Solutions.

J'ai essayé de trouver une table logique pour toutes les résolutions d'écrans standards par évident avec un algo, alors je l'ai créée (c'est assez "ch...t" à faire..... Ce devrait tourner au poil sur toutes les définition que j'ai pu tester ce soir.

Bonne Soirée à toute le monde. Et bonne semaine aussi !! dans 3 minutes c'est Lundi !!
@+Thierry
 

Pièces jointes

  • USF_StartUpPosition.zip
    47.7 KB · Affichages: 111
Dernière modification par un modérateur:
@

@Christophe@

Guest
Bonsoir Forum

Ben pour info, parfait Thierry, comme toujours, j'ai testé et retesté et tous tourne comme sur des roulettes, d'ailleurs devant une démo pareille je me dois d'aller me coucher, donc ce que je fais, lol

Bonne nuit a tous le forum XLD

Merci Thierry

@Christophe@
 
V

Vériland

Guest
Re: => DEMO UserForm StartUpPosition EveryWhere !!! LOL

bonsoir les gens de ce fil,

une nouvelle démo...dit Thierry...elle fait bien le ménage ta boite userform...même qu'elle passe bien dans les coins...hi hi hi...par contre y'en a une qui bouge pas là...elle reste au milieu pour regarder ?...non...c'est encore une belle démo...on garde...mot clé "coin"

...Thierry...

Bonne nuit
A+ Vériland
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 017
Messages
2 104 584
Membres
109 084
dernier inscrit
mizab