OVH Cloud OVH Cloud

Placement userform

3 réponses
Avatar
westdl
Bonjour le groupe

Voila le problème:

j'ai besoin pour, une apli, qu'un userform non nodal s'affiche dès
l'activation d'une feuille et reste à l'ecran pendant tous les divers
traitements. Ca, je sais faire, mais je bute sur l'affichage du userform.

Je n'ai pas trouver comment positionner à un endroit precis ce
formulaire (en l'occurence, en haut à droite de la feuille).

Dans l'aide de VBA je n'ai rien vue de probant.

est ce possible ?

d'avance merci

Alain

3 réponses

Avatar
papou
Bonjour
Chez Misange code pour faire ça :
http://www.excelabo.net/xl/userforms.php#positionuserform

Cordialement
Pascal

"westdl" a écrit dans le message de news:
dv40v3$6kn$
Bonjour le groupe

Voila le problème:

j'ai besoin pour, une apli, qu'un userform non nodal s'affiche dès
l'activation d'une feuille et reste à l'ecran pendant tous les divers
traitements. Ca, je sais faire, mais je bute sur l'affichage du userform.

Je n'ai pas trouver comment positionner à un endroit precis ce formulaire
(en l'occurence, en haut à droite de la feuille).

Dans l'aide de VBA je n'ai rien vue de probant.

est ce possible ?

d'avance merci

Alain


Avatar
michdenis
Bonjour Westdl,

Voici un exemple :

La section des barres d'outils sert à calculer la hauteur qu'occupe
les barres d'outils ... cet espace est additionner un peu plus loin
lorsque la propriété .top et .left du formulaire sont précisées.

Évidemment, tu peux remplacer le nom de la feuille et l'adresse
de la cellule de référence ....

'----------------------------
Dim X as Integer, Z as integer
For Each Cmd In Application.CommandBars
If Cmd.Visible = True And Cmd.Position = msoBarTop Then
X = X + Cmd.Height
Z = 20
End If
Next
If Application.DisplayFormulaBar = True Then
X = X + 15
End If
If ActiveWindow.DisplayHeadings = True Then
X = X + 15
y = 20
End If

With Userform1
.Startupposition = 0
.top = Worksheets("Feuil1").Range("A1").top + X
.Left = Worksheets("Feuil1").Range("A1").Offset(, 1).Left + y
.Show
End With
'----------------------------


Salutations!




"westdl" a écrit dans le message de news: dv40v3$6kn$
Bonjour le groupe

Voila le problème:

j'ai besoin pour, une apli, qu'un userform non nodal s'affiche dès
l'activation d'une feuille et reste à l'ecran pendant tous les divers
traitements. Ca, je sais faire, mais je bute sur l'affichage du userform.

Je n'ai pas trouver comment positionner à un endroit precis ce
formulaire (en l'occurence, en haut à droite de la feuille).

Dans l'aide de VBA je n'ai rien vue de probant.

est ce possible ?

d'avance merci

Alain
Avatar
westdl
Bonjour Westdl,

Voici un exemple :

La section des barres d'outils sert à calculer la hauteur qu'occupe
les barres d'outils ... cet espace est additionner un peu plus loin
lorsque la propriété .top et .left du formulaire sont précisées.

Évidemment, tu peux remplacer le nom de la feuille et l'adresse
de la cellule de référence ....

'----------------------------
Dim X as Integer, Z as integer
For Each Cmd In Application.CommandBars
If Cmd.Visible = True And Cmd.Position = msoBarTop Then
X = X + Cmd.Height
Z = 20
End If
Next
If Application.DisplayFormulaBar = True Then
X = X + 15
End If
If ActiveWindow.DisplayHeadings = True Then
X = X + 15
y = 20
End If

With Userform1
.Startupposition = 0
.top = Worksheets("Feuil1").Range("A1").top + X
.Left = Worksheets("Feuil1").Range("A1").Offset(, 1).Left + y
.Show
End With
'----------------------------


Salutations!




Un grand merci à vous deux !


Alain