afficher USF avec passage de parametres

  • Initiateur de la discussion daniel
  • Date de début
D

daniel

Guest
Bonjour le forum,

Excusez moi de reposter un message similaire à celui que j'ai posté hier 'piloter un userform', mais je pense que j'étais mal expliqué dans ce post et je bloque vraiment... Papaye m'a déjà fourni des éléments de réponse mais je ne parviens pas à résoudre le problème suivant :

Je désire lancer une macro contenue dans un classeur1 à partir d'un classeur2. Cette macro affiche un userform en indiquant sa taille (hauteur et largeur). J'aimerais, depuis le classeur2 lancer cette macro en indiquant les paramètres suivant :

- l'userform à afficher,
- sa hauteur,
- sa largeur.

La macro que je dois lancer est :

sub TailleUserform (userform, hauteur, largeur)

with userform
.height= hauteur
.width=largeur
.show
end with
end sub


Merci d'avance de votre aide,

Excellente journée

Daniel
 

Temjeh

XLDnaute Accro
Supporter XLD
Bonjour

En premier tu doit nommé le userform en userform1 et ensuite y déterminé ta haut et larg.

Ceci:

Sub TailleUserform ()
with userform1
.height= hauteur
.width=largeur
.show
end with
End sub

Mettre ceci en classeur2:

Sub Call()
Windows('Classeur1').Activate
Application.Run 'Classeur1!TailleUserform'
Windows('Classeur2.xls').Activate
End sub

A+

Temjeh
 
D

daniel

Guest
Bonjour Temjeh

Merci pour ta réponse, mais je cherche à faire passer en paramètre le nom du userform, pas seulement appeler une macro depuis un autre classeur. Le nom de l'userform doit être passé comme paramètre (ce qui me permttrait d'utiliser la macro pour n'importe quel userform)

Bon après midi,

Daniel
 

mutzik

XLDnaute Barbatruc
Bonjour Daniel, temjeh, le forum,

Pour autant que je sache, il faut d'abord afficher le userform et ensuite changer ses propriétés (dans userform.initialize)
Là tu pourras changer la taille, le titre et toutes les propriétés à partir de renseignements qui existent dans une de tes feuilles ...
 
D

daniel

Guest
Bonjour Mutzik,

Merci pour ta réponse. Pas de problèmpe, lors de l'initialisation, pour changer la taille d'un userform avec des paramètres provenant d'un autre classeur, mais comment indiquer quel userform afficher (puisque mon but est d'utiliser cette macro pour n'importe quel userform) ?

A +

Daniel
 

mutzik

XLDnaute Barbatruc
Re Daniel,

Je viens de faire des tests et on peut (contrairement à ce que j'ai dit avant, définir les paramètres du USF avant de l'afficher :

Private Sub CommandButton1_Click()
Call AfficheUSF(100, 200, 250)
End Sub

Sub AfficheUSF(haut As Long, larg As Long, coul As Long)
UserForm1.Height = haut
UserForm1.BackColor = coul
UserForm1.Width = larg
UserForm1.Show
End Sub

Je teste le reste et je te dis ...
 

mutzik

XLDnaute Barbatruc
Re,

voili le résultat en fichier joint [file name=ChoixUSF.zip size=10922]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ChoixUSF.zip[/file]
 

Pièces jointes

  • ChoixUSF.zip
    10.7 KB · Affichages: 43
P

Papaye

Guest
Bonjour à tous,

Désolé Daniel de n'avoir pas pu continuer notre fil ... Obligations professionnelles obligent !

Je vois que les gentlemen du forum t'ont répondu !

Bravo et merci à eux,

Papaye
 

Discussions similaires

Statistiques des forums

Discussions
312 347
Messages
2 087 499
Membres
103 562
dernier inscrit
soso21