BenHarber
XLDnaute Occasionnel
Bonsoir le Forum,
Je me lance dans les modules de classe, mais c'est pas gagné...
Voilà mon pb :
J'ai un fichier avec 2 usf (usf1 et usf2) qui contiennent chacun de nombreux combobox (Oui/Non).
Le principe est : si je passe un combo à ''Oui'', je rend accessible une zone de texte attenante (''txtObj+1 n°'') . Si je choisis ''Non'' cela la rend inaccessible.
Derrière chaque Usf j'ai écrit :
Private cboUsf() As New RegptEvent
Dans le module de classe créé (''RegptEvent''), j'ai écrit :
Private cboUsf() As New RegptEvent
Private Sub cboUsf_Change()
Dim m As Byte
m = cboUsf.Tag
If cboUsf.Value = "Oui" Then
'A ce niveau, si j'indique un nom d'usf précis (usf1) : tout se passe bien
usf1.Controls("txtObj" & cboUsf.Tag).Enabled = True
'Mais ce que je souhaiterais, c'est avoir un code générique (dans le même module de classe) qui soit appelé quel que soit l'usf utilisé (usf1 ou usf2).
'Savez-vous si c'est possible ?
Pour info, j'ai essayé :
Me.Controls("txtObj" & cboUsf.Tag).Enabled = True : ça plante...
Puis, j'ai essayé de déclarer une variable publique (à l'initialisation de l'usf utilisé : UsfEnCrs = Me.Name) et j'ai écris :
usfEnCrs.Controls("txtObj" & cboUsf.Tag).Enabled = True : ça plante...
ou
UserForm(usfEnCrs).Controls("txtObj" & cboUsf.Tag).Enabled = True : ça plante...
ou
UserForms(usfEnCrs).Controls("txtObj" & cboUsf.Tag).Enabled = True : ça plante...
Quelqu'un aurait-il une idée de code à saisir ? Ou peut-être que ce n'est pas possible ?
Merci d'avance 1) à ceux qui ont lu ce post jusqu'au bout... 2) à tout ceux qui auront des sugestions à me proposer : je suis preneur !
Cordialement,
BenHarber
Je me lance dans les modules de classe, mais c'est pas gagné...
Voilà mon pb :
J'ai un fichier avec 2 usf (usf1 et usf2) qui contiennent chacun de nombreux combobox (Oui/Non).
Le principe est : si je passe un combo à ''Oui'', je rend accessible une zone de texte attenante (''txtObj+1 n°'') . Si je choisis ''Non'' cela la rend inaccessible.
Derrière chaque Usf j'ai écrit :
Private cboUsf() As New RegptEvent
Dans le module de classe créé (''RegptEvent''), j'ai écrit :
Private cboUsf() As New RegptEvent
Private Sub cboUsf_Change()
Dim m As Byte
m = cboUsf.Tag
If cboUsf.Value = "Oui" Then
'A ce niveau, si j'indique un nom d'usf précis (usf1) : tout se passe bien
usf1.Controls("txtObj" & cboUsf.Tag).Enabled = True
'Mais ce que je souhaiterais, c'est avoir un code générique (dans le même module de classe) qui soit appelé quel que soit l'usf utilisé (usf1 ou usf2).
'Savez-vous si c'est possible ?
Pour info, j'ai essayé :
Me.Controls("txtObj" & cboUsf.Tag).Enabled = True : ça plante...
Puis, j'ai essayé de déclarer une variable publique (à l'initialisation de l'usf utilisé : UsfEnCrs = Me.Name) et j'ai écris :
usfEnCrs.Controls("txtObj" & cboUsf.Tag).Enabled = True : ça plante...
ou
UserForm(usfEnCrs).Controls("txtObj" & cboUsf.Tag).Enabled = True : ça plante...
ou
UserForms(usfEnCrs).Controls("txtObj" & cboUsf.Tag).Enabled = True : ça plante...
Quelqu'un aurait-il une idée de code à saisir ? Ou peut-être que ce n'est pas possible ?
Merci d'avance 1) à ceux qui ont lu ce post jusqu'au bout... 2) à tout ceux qui auront des sugestions à me proposer : je suis preneur !
Cordialement,
BenHarber