Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/11/2007, 16h16   #1
Invité de passage
 
Inscription : juin 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 14
Points : 3
Points : 3
Par défaut Modifier le titre d'un form par une procédure externe

Bonjour,
J'ai un petit probleme VBA avec un userform. Mais le probleme est transposable avec un form selon VB6. Le probleme exposé a valeur d'exemple..mon probleme réelle est autre mais l'exemple l'illustre bien

Soit un userform de nom UfCalc. J'ai dans le code qui est liée a celui si:
Code :
1
2
3
Sub UserForm_Initialize()
Call SetCaption(Me)
End Sub
SetCaption est une procédure mis dans un module standart:
Code :
1
2
3
Sub SetCaption(oUf as Userform)
oUf.Caption="Hello"
End Sub
Le probleme est que quand je charge UfCalc celui ci ne contient pas l'entete "Hello" avec la procédure précédente (mais le terme Hello apparait sous l'entete du form)..
Si par contre:
- je modifie la définition de SetCaption en Sub SetCaption(oUf as UfCalc) cela marche
- je passe en parametre un controle du formulaire et que j'accede au formulaire grace a la propriété Parent du controle cela marche également!

Pourquoi les différentes situations précédentes (ne) marchent (pas).. Quelles solutions y a t'il pour gérer cela avec SetCaption(oUf as Userform) - j'ai de nombreux formulaire qui devrait accéder a ce genre de procédures standart..-
Merci pour toutes idées ou début de piste. Xavier
xni70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 18h23   #2
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Code :
1
2
3
4
 
Sub SetCaption(oUf as Object)
oUf.Caption="Hello"
End Sub
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 18h28   #3
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Pour être un brin plus explicite, ton Me ne renvoie pas un objet de type UserForm
Mais plutôt un objet de type ufCalc, héritant de la classe UserForm

Tu aurais donc également pu faire :
Code :
1
2
3
4
Sub SetCaption(oUf as ufCalc)
oUf.Caption="Hello"
End Sub

Ce qui aurait tout aussi bien fonctionné
Mais, j'ai cru comprendre que ce genre de procédure devait être valide pour n'importe quel objet que tu vas générer. Dans ce cas, il convient de mettre Object, et non ufCalc

Voilà
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h47.


 
 
 
 
Partenaires

Hébergement Web