Je bloque sur un sujet. J'ai créé un userform de recherche (d'articles) appelé "Search_Article" que j'aimerais utiliser avec d'autres userforms. Pour celà j'ai commencé par mettre dans un module:
pour transformer en variable le nom de l'userform et la textbox qui viendra récupérer le résultat de la recherche.
Dans mon userform qui va appeler le userform de recherche j'ai mis:
Private Sub Com_Search_Article_Button_Click()
UFName = Me.Name
UFtextbox = "M_Article_Combobox"
UFmessage = "Sélectionnez un article depuis la liste"
Search_Article.Show
End Sub
Bonjour,
Dans ton userform qui va appeler le userform de recherche j'ai mis:
VB:
Private Sub Com_Search_Article_Button_Click()
Dim Usf As New Search_Article
Usf.UFmessage = "Sélectionnez un article depuis la liste"
Usf.Show vbModal
With Usf.ListBox1
Me.UFtextbox = .List(.ListIndex, 0)
End With
Unload Usf
End Sub
Dans ta recherche:
Code:
Public UFmessage As String
Private Sub CommandButton1_Click()
If ListBox1.ListIndex = -1 Then
MsgBox UFmessage
Else
Me.Hide
End If
End Sub
Merci dysorthographie, par contre j'ai une erreur sur UFTEXTBOX:
Pour mieux expliquer ce que je cherche à faire voici quelques screens:
Quand je clique sur la loupe du mon premier userform:
J'ai un second userform de recherche qui s'ouvre:
Je cherche mon matériel, je sélectionne la ligne et je clique sur "valider". La valeur de la colonne de gauche vient alors se mettre ici (M_Article_Combobox):
Private Sub Com_Search_Article_Button_Click()
Dim Usf As New Search_Article
Usf.UFmessage = "Sélectionnez un article depuis la liste"
Usf.Show vbModal
With Usf.ListBox1
Me.M_Article_Combobox= .List(.ListIndex, 0)
End With
Unload Usf
End Sub
Re
pas évident sans fichier hein ???
si j'ai bien Compris Me c'est Usf dans l'exemple
tu dois récupérer dans Usf.M_Article-Combobox la valeur de la ligne sélectionnée de la ListBox de Usf
puis tu effaces le Userform ???????
jean marie
En fait j'ai plusieurs formulaires de base (j'essaie de créer une GMAO).
J'ai un formulaire de sortie de matériel sur intervention
J'ai un formulaire de commande
J'ai un formulaire de création d'article
Je souhaite pouvoir appeler ce formulaire de recherche sur chacun d'entre eux pour aider à la sélection d'un code article "AJOUTER UN ARTICLE":
Aujourd'hui j'ai créé un formulaire de recherche spécifique à chaque autre formulaire, car je n'arrive pas à appeler la variable d'un userform:
????????????.Controls(UFtextbox) = ListBox1.List(ListBox1.ListIndex, 0)
Si je mets le nom du formulaire complet (exemple "OT_Edition"), tout marche sans problème. Mais vu que je veux qu'un seul formulaire de recherche je souhaite remplacer "OT_Edition" par une variable en fonction de l'userform de base qui va l'appeler.
Re
dommage ! (pour le Fichier)
Tu peux peut être utiliser une variable qui prendra la valeur du Usf appelant et ainsi pouvoir utiliser un seul Userform de recherche .
dans un Module du Fichier
Public UsfAppelant as Object
a l'ouverture de chacun de tes Userform appelant tu mets :
dans le Initialize de chaque Userform
Set UsfAppelant =Me
puis du Userform de recherche faire
With Me.listbox1
UsFAppelant.M_Article_Combobox= .List(.listIndex,0)
End With
Voici mon fichier, j'ai pris un peu de temps pour "l'alléger" avec le strict nécessaire. Pour accéder au formulaire il faut sélectionner une ligne puis cliquer sur Editer Commande puis sur l'onglet Articles et la loupe. Il y aura une erreur du à la mauvaise définition de la variable de l'userform.
Si vous faites Créer commande, la loupe est cette fois ci connecté à un autre userform où le nom est clairement défini, et ça marche.
Re
Un fichier perfectible Lol
je n'ai traité que le Userform Editer
dans création il suffit de mettre
Set UsfAppelant = Me 'en tête de procédure Initialise
jean marie
Re
Un fichier perfectible Lol
je n'ai traité que le Userform Editer
dans création il suffit de mettre
Set UsfAppelant = Me 'en tête de procédure Initialise
jean marie
Je n'en doute pas qu'il soit perfectible . Je viens de commencer le VBA depuis 3 semaines. En tout cas, merci beaucoup pour ton aide, ca marche parfaitement. Je viens de comprendre mon erreur, je n'appelais pas la variable au bon moment.