cicdrek
Messages postés4Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention26 janvier 2007
-
23 janv. 2007 à 16:28
cicdrek
Messages postés4Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention26 janvier 2007
-
26 janv. 2007 à 17:16
Bonjour,
J'ai créé un formulaire de façon dynamique à partir d'une feuille Excel. en attribuant à chaque zone créée un nom de variable associé à un numéro que j'incrémente.
ex: Variable1, Variable2....
Mon problème est le suivant je créé ce formulaire dans une procédure Userform_initialize()
Mais je n'arrive pas à récupérer mes données dans ma procédure cmdvalider_click()
voici mon code source(très très résumé!)
<hr />
PrivateSub UserForm_Initialize()
Dim TxtActivite(1To100)As Control
h = 1
'Initialisation des boites contenant les activités
Set TxtActivite(h) = Controls.Add("Forms.TextBox.1")
TxtActivite(h).Text = FeuilleActivite.Cells(h, 1).Value
TxtActivite(h).Left = 108
TxtActivite(h).Top = 0 + (h * 24)
TxtActivite(h).Width = 210
TxtActivite(h).Height = 18
EndSub
PrivateSub CmdValider_Click()
Dim h AsInteger
Dim TxtActivite(1To100)As Control
h = 1
If(TxtActivite(h) <> "")Then '<------- a priori c'est cette ligne qu'il n'aime pas...
...
<hr />
c'est la qu'Excel me sort sa fameuse phrase:
variable objet ou variable de bloc with non définie
En clair il ne connait pas la variableTxtActivite(h) dans ma procédure CmdValider_Click
Si vous avez une idée sur la résolution de mon problème...<!-- / message --><!-- edit note -->
cicdrek
Messages postés4Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention26 janvier 2007 24 janv. 2007 à 10:11
J'ai essayer effectivement de la déclarer en public mais ca ne change rien car ma véritable déclaration se fait lors de mon
Set TxtActivite(h) = Controls.Add("Forms.TextBox.1")
et celui la je ne peux pas le sortir de UserForm_Initialize.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 janv. 2007 à 06:55
Salut,
Cicdrek, tu dis :
J'ai essayer effectivement de la déclarer en public mais ca ne change
rien car ma véritable déclaration se fait lors de mon
Set TxtActivite(h) = Controls.Add("Forms.TextBox.1")
et celui la je ne peux pas le sortir de UserForm_Initialize.
Et alors ??
Tu déclares, c'est un fait, mais qu'est ce que ça fait si tu le déclares dans les déclarations ? (hors procédure)
Beh ça change rien, si ce n'est que tes variables seront accessibles dans toutes les procédures de ton UserForm.
Cavo789 t'as donnée la bonne marche à suivre !
Dis toi que déclarer une variable dans les déclarations, c'est comme déclarer dans une procédure (ou fonction), à la différence que la variable est accessible dans l'ensemble de ton code UserForm.
Et sinon, pour le coup du If, voici la structure à appliquer :
If Ton_Test Then
Instructions
ElseIf TonSecond_Test Then
Instructions
Else
Instructions
End If
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Vous n’avez pas trouvé la réponse que vous recherchez ?
cicdrek
Messages postés4Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention26 janvier 2007 26 janv. 2007 à 17:16
Merci beaucoup mais j'ai trouvé une autre solution. il suffisait de données un Name à chacune de mes text box en utilisant la propriété .Name
et de rappeler cette textbox dans l'autre module grace à:
Nomde la form.Controls ("LeNom de la textBox" & i).Value
ou i est la variable que j'incrémente grace à une boucle.