Paramétrer une propriété d'un objet d'une form dans un module

cs_nirega Messages postés 58 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 14 janvier 2008 - 24 nov. 2005 à 05:09
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 24 nov. 2005 à 15:48
bonjour,
j'aimerais éviter la redondance de code avec une fonction dans un module

je modifie la visibilité de lien dans un menu

********dans un module********
Public Function ChoixMenu5(MenuList)
NomForme.NomDuMenu1.visible=true
NomForme.NomDuMenu2.visible=true
NomForme.NomDuMenu3.visible=false
NomForme.NomDuMenu4.visible=true
NomForme.NomDuMenu5.visible=false
End Function

jusque la tout va........mon probleme est que j'essaye de concaquener un chiffre a coté du nom de ma forme (NomForme)
et vb ne reconnais pas cette form ou me donne comme erreur que sa prend un objet
genre :
NomForme & MenuList.NomDuMenu1.visible=true
ou
[NomForme & MenuList].NomDuMenu1.visible=true

et rien ne marche????

pouvez vous me donner une piste pour que je puisse continuer
merci ;-)

nirega

3 réponses

linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
24 nov. 2005 à 07:27
Lorsque tu appeles ta fonction Choix Menu5 tu dois forcément connaître
la forme sur laquelle ton menu se trouve alors pourquoi ne pas passer
ta forme en tant que paramètre de ta fonction.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 nov. 2005 à 07:41
si tes menus se suivent, tu pourra les Indexer :
NomForme.NomDuMenu(4).visible=true

sinon, il t'es toujours possible de faire :

Private Sub Command1_Click()
Dim MyMenu As Menu
Set MyMenu = GetMenu("Menu" & 3)
If Not MyMenu Is Nothing Then
MyMenu.Visible = False
End If
End Sub


Public Function GetMenu(ByRef Name As String, Optional ByRef F As Form) As Menu
If F Is Nothing Then
Set F = Me
End If
On Error Resume Next
Set GetMenu = F.Controls(Name)
On Error GoTo 0

If Not GetMenu Is Nothing Then
If Not TypeOf GetMenu Is Menu Then
Set GetMenu = Nothing
End If
End If
End Function

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
24 nov. 2005 à 15:48
salut,
tu peux aussi simplement enregistrer le nom complet de tes Form, sans oublier de faire un
Erase du tableau à la fermeture de l'appli
[VB6]


' DANS UN MODULE
'
' menu Projet > Propriétés de ~Projet1~ > Objet de démarrage : Sub Main
'
'
Option Explicit
'
Public aFormName(2) As Form
'
'
Public Sub Main()
'le projet contient ce module (Module1) et 3Form (nommées ci-dessous)
Set aFormName(0) = Form_Main
Set aFormName(1) = Form2
Set aFormName(2) = Form6

aFormName(0).Show

aFormName(1).BackColor = 255
aFormName(1).Show
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


++
PCPT [AFCK]
0
Rejoignez-nous