MarieNoob
Messages postés16Date d'inscriptionsamedi 1 décembre 2007StatutMembreDernière intervention17 mars 2009
-
1 déc. 2007 à 15:56
MarieNoob
Messages postés16Date d'inscriptionsamedi 1 décembre 2007StatutMembreDernière intervention17 mars 2009
-
1 déc. 2007 à 18:31
Bonjour à tout le monde, veuillez excuser mon niveau très débutant ! J'espère ne pas être trop ridicule sur ce forum.
Voici mon problème:
J'ai plusieurs form dans mon project, nommé toutes de la même manière avec "F_" en début du nom :
F_FORM1
F_FORM2
F_FORM3
etc
Dans une autre Form (F_MENU) j'ai une Listbox nommé LIST_PROG avec plusieurs choix dans la liste nommé de manière identique que mes form (FORM1, FORM2, FORM3, etc)
Donc je souhaiterai que quand on double click sur un choix de ma liste la form associé s'affiche.
Si je double clique sur le choix de ma liste FORM2 c'est la form F_FORM2 qui doit s'afficher.
Voici mon bout de code :
Private Sub List_Prog_DblClick()
Dim Lance_Prog As Control
xxx = List_Prog.Text
Lance_Prog = "F_" & xxx
Lance_Prog.Show
End Sub
Mais ce code me fait un message d'erreur : Object variable or With block variable not set.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 1 déc. 2007 à 18:19
salut,
ta demande n'est pas réalisable, ce n'est pas du php !!
même callbyname attend un objet, autrement dit quelquechose qui apparaitrait dans le menu intellisense.
et comme ta "variable" n'y apparaitra jamais, tu ne pourras pas
exemple :
dim machin as string
machin="f_form2"
dim F as object
set F=new ....
après le NEW, le menu n'affichera pas MACHIN, donc c'est cuit
le mieux que tu puisses faire est un tableau au form_load, avec le nom de tes forms
Option Explicit
Dim aMyForms(1 To 4) As Form
Private Sub Form_Load()
Set aMyForms(1) = F_Form1
Set aMyForms(2) = F_Form2
Set aMyForms(3) = F_Form3
Set aMyForms(4) = F_Form4
Dim i As Integer
For i = LBound(aMyForms) To UBound(aMyForms)
LIST_PROG.AddItem "F_Form" & i
Next i
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim Frm As Form
For Each Frm In Forms
Unload Frm
Next Frm
Set Frm = Nothing
Erase aMyForms
End Sub
Private Sub List_Prog_DblClick()
Dim i As Integer
For i = LBound(aMyForms) To UBound(aMyForms)
If LIST_PROG.Text = aMyForms(i).Name Then
Exit For
Next i
aMyForms(i).Show
End Sub
++
PCPT [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
MarieNoob
Messages postés16Date d'inscriptionsamedi 1 décembre 2007StatutMembreDernière intervention17 mars 2009 1 déc. 2007 à 16:46
Salut Exploreur,
Pour ton premier code je ne connaissait pas, pour le deuxième j'en avait bien connaissance.
Le problème c'est que ma liste de choix dans ma listbox va encore avoir beaucoup de choix par la suite avec autant de nouvelle userform créer.
Ces deux codes m'obligent systématiquement à re_modifier mon bout de code Private Sub List1_DblClick().
N'y a t'il donc pas de solution pour prendre en compte "ma_concaténation.Show" ?
En tout cas merci !
Marie
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 1 déc. 2007 à 17:29
Ben, va falloir que je cherche un peu plus aussi, car en faite, j'étais entrain de faire un essai avec une boucle For...Each...mais le souçi, c'est qu'il faut que les forms soient visible, pour pouvoir faire la comparaison de list1.text avec le nom de la form pour pouvoir ainsi l'afficher....