cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010
-
8 mai 2005 à 13:11
cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010
-
8 mai 2005 à 19:23
Bonjour à tous,
Dans une form j'ai:
NomFenetre = Me.Name
Je vais ensuite chercher une sub() en dehors de la fenètre active.
Dans cette sub, je voudrai faire:
NomFenetre.FrameRensSel.Visible = True
Mais VB, y veux pas !
J'ai tenté de mettre
Public NomFenetre As Object
Public NomFenetre As Form
Public NomFenetre As String
......
Rien de rien.....
Ou est l'erreur ou bien y a t'il une manip spéciale pour que NomFenetre soit bien considéré comme une "form"?
Bien sur, je pourrais mettre ma sub dans la fenètre active elle même pour résoudre le problème, mais j'ai potentiellement un 30ene de form qui sont sensées utiliser cette sub; alors si je pouvais éviter de la mettre dans chaque form....
Merci d'avance à tous
Rocknroll2
Ouais, je serais un Pro du VB6 et du PHP dans 10/15 ans
;)
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 8 mai 2005 à 14:07
Bonjour,
Je ne comprend pas ce que tu veux faire ? Si tu veux qu"une procédure soit utilisables dans toutes tes Form, place là dans un Module et déclare là Public.
cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010 8 mai 2005 à 16:39
Merci pour ta réponse rapide jpleroisse
Le problème c'est que j'ai une erreur sur:
FrameRensSel.Visible = True
VB me dit: Un objet est requis.
Je voulais donc passer le nom de ma form en parametre de manière à lui indiquer que c'est FrameRensSel de la form ??? qui doit être visible en lui disant:
NomFenetre.FrameRensSel.Visible = True
Où NomFenetre serait le nom de ma form.
Si tu as une idée ou si qqu'un d'autre entrevoit qque chose pour m'aider....
A bientôt
Rocknroll2
Ouais, je serais un Pro du VB6 et du PHP dans 10/15 ans
;)
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 8 mai 2005 à 17:14
Franchement, j'essaye de conprendre, si tu as ce message "un objet est requis", c'est que vb ne trouve pas de Frame nommée FrameRensSel sur ta Form, car si tu veus qu'un objet Frame apparaisse il faut après l'avoir placé, rendre sa propriété visible sur False.
en résumé, tu ne peux pas rendre un objet visible sur une Form, si celui-ci se trouve dans une autre.(si l'objet est dans Form1, il ne saurait-être visible dans Form2)
Sinon essaye de m'expliquer un peu mieux.
jpleroisse
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010 8 mai 2005 à 17:41
jpleroisse rebonjour,
j'ai des form qui sur le "load", doivent aller voir des renseignements dans un fichier. Ce fichier est le même pour toutes les forms.
J'ai donc mis dans un module, une sub qui va lire les renseignements voulus.
Dans chaque Form j'ai mis:
NomFenetre = Me.Name
NomFenetre contient bien le nom de la fenètre active, pas de souci.
J'appelle ma sub avec l'instruction:
LireRensCategories
Dans cette sub (qui se trouve dans un module) j'ai vérifié par un toto = NomFenetre que NomFenetre était bien connu, pas de souci, NomFenetre contient bien le nom de ma form d'origine!
Si dans ma sub, dans le module, je mets:
NomFenetre.FrameRensSel.Visible = True (pour rendre visible un frame caché à l'origine dans la form), j'ai un message d'erreur: Objet requis.
Si par contre je mets "en dur":
Nom_de_la_form_réel.FrameRensSel.Visible = True
Là, ça marche......
Je pense donc que je ne déclare pas ma variable "NomFenetre " comme il faut!
J'ai essayé plusieurs solutions:
Public NomFenetre As Object
Public NomFenetre As Form
Public NomFenetre As String
.....
Mais toujours message d'erreur (pas toujours le même selon le AS !)
Si tu peux m'aider....
Code:
dans ma form active:
NomFenetre = Me.Name
LireRensCategories (ça c'est la sub)
dans mon module:
Sub LireRensCategories()
....
NomFenetre.FrameRensSel.Visible = True
.....
end sub
rocknroll2
Ouais, je serais un Pro du VB6 et du PHP dans 10/15 ans
;)
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 8 mai 2005 à 18:12
J'ai essayer ton code, ça marche, mais j' ai dû supprimer NomFenetre = Me.Name, vb me donne un message d'erreur avec cette procédure,Donc j'ais mis sur la Form NomFenetre un Frame que j'ai appelé FrameRensSel et la propriété Visible sur False.
Dans le Module:
Public Sub LireRensCatégories()
NomFenetre.FrameRensSel.Visible = True
End Sub
Dans la Form NomFenetre:
Private Sub Form_Load()
Call LireRensCatégories
End Sub
cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010 8 mai 2005 à 18:23
Tu es exactement dans ma situation:
1 form avec un Frame caché dans 1 Form
appel de la sub (public)
Comment transmets tu NomFenetre à la sub ?
Il faut bien qu'avant, dans la Form, tu initialise une variable qui sera transmise dans LireRensCategories()
Ouais, je serais un Pro du VB6 et du PHP dans 10/15 ans
;)
jpleroisse
Messages postés1788Date d'inscriptionmardi 7 novembre 2000StatutMembreDernière intervention11 mars 200627 8 mai 2005 à 18:40
Non, je n'ai pas de variable, j'ai créé la procédure directement dans le module, de toute manière tu ne peux avoir qu'une seule Form qui ai le nom de NomFenetre.
En plaçant directement dans Form_Load
FrameRensSel.Visible = True, ce serait la même chose.
cs_rocknroll2
Messages postés100Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention22 janvier 2010 8 mai 2005 à 18:40
Pour l'instant, j'ai contourné le problème:
dans ma sub LireRensCatégories, je mets une variable (déclarée Public):
VarVisible = 1
et dans ma Form
Private Sub Form_Load()
Call LireRensCatégories
If VarVisible = 1 Then 'VarVisible vient de la sub LireRensCategories
FrameRensSel.Visible = True
VarVisible = 0 'pour réinitialiser à 0 !
End If
End Sub
La, ca marche nickel... mais bon, je préférerai savoir pourquoi ça ne marche pas en direct dans la sub !
Piste éventuelle....... Comme j'appelle la sub depuis le "Load" de la form d'origine, l'objet masqué FrameRensSel "n'existe" peut-être pas encore... d'où peut être le message d'erreur..???
Ouais, je serais un Pro du VB6 et du PHP dans 10/15 ans
;)