Recherche multiple sur userform
Bonjour,
J'ai créé un fichier permettant d'avoir une vision global de notre zone de stockage et qui permet aussi de rechercher un article et de le localiser dans cette zone de stockage à partir d'une extraction de donnée.
Pour commencer la recherche il faut cliquer sur le bouton macro RAZ map ou aller sur la feuille16.
Cependant, pour la recherche j'ai créé un userform où nous ne pouvons rechercher qu'un article à la fois.
Je voulais savoir s'il était possible de rechercher plusieurs articles en une fois dans le userform en copiant collant les articles recherchés dans celui-ci (pour éviter de les faire un par un) et en affichant la même chose qu'actuellement après avoir lancé la recherche mais pour plusieurs articles.
Merci d'avance pour votre aide.
Bonjour
Cependant, pour la recherche j'ai créé un userform où nous ne pouvons rechercher qu'un article à la fois.
Je suppose que vous parlez de l'inputbox qui apparait lorsque vous sélectionnez la feuille16. Si oui, il s'agit c'est plutot une input box que vous avez créée
Concernant votre demande c'est tout à fait possible et si vous voulez réaliser cette recherche, cela peut se faire via une userfom comme celle de la fichier Article qui se trouve dans votre fichier.
Quels sont les critères à rechercher et dans quelles colonnes ?
Cordialement
Bonjour arnitore Dan le forum
je t'envoie ton fichier dans la matinée avec ce que tu veux
a+
Papou
Re Bonjour Arnitore Dan le forum
ton fichier en retour, avec une tout autre recherche et affichage
tu ouvres tu testes et tu me redis
a+
Papou
Re Bonjour Arnitore le forum
Une V2 avec un bouton de Effacer sur la feuil2
a+
Papou
Salut Artinore,
Salut Dan, Paritec,
petit délire Userform quoique je me demande maintenant si je ne suis pas trompé de feuille de données!!
Bref, soit ! On corrigera si nécessaire !
- la Userform offre 5 possibilités de recherche d'articles. On pourrait évidemment envisager d'en ajouter (presque) autant qu'on veut ;
- 5 boutons à gauche dont les couleurs seront les repères des articles recherchés sur le Plan ;
- une checkbox "Twins" permet l'affichage de tous les articles dont le n° de référence sont proches ;
- 5 TextBox attendent l'encodage des n° de référence (!! pas de protection contre les encodages idiots !!). Tu peux choisir d'encoder dans la ligne de ton choix si tu préfères une couleur!
- la recherche proprement dite commence à partir du 5e chiffre encodé ;
- si tu as encodé sous "Twins" mais que tu ne veux garder que, par exemple, hein, les 2 premiers articles, tu peux cliquer sur le bouton à gauche à hauteur de la 3e ligne : effacement des lignes d'infos 3, 4 et 5 -> SetFocus sur la TextBox de la 3e ligne ;
- la même opération sans "Twins" n'efface que la ligne ciblée.
- 2 boutons-icône, l'une pour sortir sans calcul, l'autre pour la localisation sur le Plan.
With Worksheets("PLAN")
.Cells.Interior.Color = xlNone
.Cells.ClearComments
.Activate
On Error Resume Next
For x = 1 To 5
If Me.Controls("txt" & x * 100).Text <> "" Then
For y = 2 To 14 Step 2
If InStr(LCase(Me.Controls("lbl" & (x * 100) + y).Caption), "non") = 0 And Me.Controls("lbl" & (x * 100) + y).Caption <> "" Then
.Cells.Find(what:=Me.Controls("lbl" & (x * 100) + y).Caption, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext) _
.Interior.Color = Me.Controls("cmd" & x * 100).BackColor
End If
Next
End If
Next
On Error GoTo 0
End WithA tester, comme on dit!
A+
Salut Artinore,
Salut Dan, Paritec,
petit délire Userform quoique je me demande maintenant si je ne suis pas trompé de feuille de données!!
J'ai puisé les infos dans ta BDD générale ! Bref, soit ! On corrigera si nécessaire !
- la Userform offre 5 possibilités de recherche d'articles. On pourrait évidemment envisager d'en ajouter (presque) autant qu'on veut ;
- 5 boutons à gauche dont les couleurs seront les repères des articles recherchés sur le Plan ;
- une checkbox "Twins" permet l'affichage de tous les articles dont le n° de référence sont proches ;
- 5 TextBox attendent l'encodage des n° de référence (!! pas de protection contre les encodages idiots !!). Tu peux choisir d'encoder dans la ligne de ton choix si tu préfères une couleur!
- la recherche proprement dite commence à partir du 5e chiffre encodé ;
- si tu as encodé sous "Twins" mais que tu ne veux garder que, par exemple, hein, les 2 premiers articles, tu peux cliquer sur le bouton à gauche à hauteur de la 3e ligne : effacement des lignes d'infos 3, 4 et 5 -> SetFocus sur la TextBox de la 3e ligne ;
- la même opération sans "Twins" n'efface que la ligne ciblée.
- 2 boutons-icône, l'une pour sortir sans calcul, l'autre pour la localisation sur le Plan.
With Worksheets("PLAN") .Cells.Interior.Color = xlNone .Cells.ClearComments .Activate On Error Resume Next For x = 1 To 5 If Me.Controls("txt" & x * 100).Text <> "" Then For y = 2 To 14 Step 2 If InStr(LCase(Me.Controls("lbl" & (x * 100) + y).Caption), "non") = 0 And Me.Controls("lbl" & (x * 100) + y).Caption <> "" Then .Cells.Find(what:=Me.Controls("lbl" & (x * 100) + y).Caption, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext) _ .Interior.Color = Me.Controls("cmd" & x * 100).BackColor End If Next End If Next On Error GoTo 0 End WithA tester, comme on dit!
A+
Bonjour curulis,
J'ai essayé ton fichier, il est vraiment bien, on peut chercher plusieurs références et les voir avec des couleurs différentes sur le plan.
Cependant, je voulais savoir s'il était possible de ne pas taper un par un les codes dans le userform mais plutôt de faire un copier coller des codes recherchés (en une fois) pour un gain de temps ?
Avec le bouton twins tu as les références les plus proches mais ça ne sera pas forcément le cas.
Merci pour ton aide.
Nico
Re Bonjour Arnitore le forum
Une V2 avec un bouton de Effacer sur la feuil2
a+
Papou
Bonjour Papou,
J'ai essayé ton fichier, il permet aussi de rechercher plusieurs codes mais ils sont tous affichés de la même couleur sur le plan.
Cependant, je peux donc sélectionner plusieurs codes mais je suis toujours obligé de copier coller les codes un par un dans la recherche du userform.
Je voulais donc savoir si au lieu de les rentrer un par un dans cette partie il était possible d'avoir un genre de tableau ou plusieurs lignes pour pouvoir copier coller de tous les codes nécessaires en une seul fois?
Merci d'avance pour ton retour.
Nico
Salut Artinore,
je vais t'imaginer un truc où tu pourras sélectionner plusieurs plages de codes de ta BDD pour les intégrer automatiquement dans la USF.
Cependant :
- il faudra alors que ces codes apparaissent tous dans l'écran. Pas question de faire défiler pour ajouter des plages!
- limiter le nombre de codes, quand même, ou alors, tu me dis combien de lignes je dois prévoir dans l'USF... qui n'est pas extensible à l'infini!
Pas avant ce soir, voire cette nuit!
A+
Ré bonjour arnitore le forum
J'ai essayé ton fichier, il permet aussi de rechercher plusieurs codes mais ils sont tous affichés de la même couleur sur le plan.
bah oui si je regarde ton fichier tel que tu l'as fourni, il possède deux couleurs possible, le blanc et le vert !!!!!!
si maintenant il faut une couleur par recherche ce n'est pas un problème à réaliser.
Il semble que tu n’as pas bien compris comment le fichier fonctionne avec mes modifications.
Tu n’as pas lu le mode d’emploi???
Les lignes
Se remplissent toutes seules quand tu cliques sur une ligne du tableau du haut en fonction du disponible, tu as les réf et code qui s'affichent en bas, ensuite tu recherches de nouveau une autre ref ou mot dans le Textbox en haut et si tu cliques sur une des lignes du haut elle vient s'ajouter en bas s'il y a du stock naturellement !!!!
et ainsi de suite pour 10 recherches ou plus si tu veux.
Pour les couleurs il suffit de me donner la liste des couleurs à appliquer à chaque type de produit , mais pour le moment le fichier fourni donne le vert comme couleur et certaines cellules sont couleur blanche.
Quand à la recherche tu tapes même du texte et c’est filtré immédiatement
Aucun clique aucun textbox et une liste sans limite
Avec l’autre proposition au delà de 5 ref tu fais comment??? Et surtout Si tu n'as pas la référence complète tu ne trouveras pas ton produit!!
Tapes dans recherche 372 qui est un bout de ref que j'ai en tête et illico tu as les produits, le nombre de lignes sélectionnables dans la listbox du haut est illimité avec ce que je t'ai fait.
A +
Papou
Salut Artinore,
Salut Paritec,
de retour sur ce fichier qui ne m'avait pas quitté, malgré les apparences.
Ne sachant toujours pas le nombre de produits max que tu souhaites lister, j'ai fixé ce nombre à 30.
Je pense même qu'au-delà de 10 produits, personne ne pourrait mémoriser les détails de la liste!
De plus, j'ajoute que les couleurs affichées sur le plan sont les couleurs correspondant aux derniers produits de la liste : si d'autres produits sont entreposés au même endroit, leur renseignement-couleur serait "recouvert"!
Tu as 2 façons d'encoder tes références-produits :
- la même manière manuelle que le fichier précédent en ouvrant l'USF depuis ton bouton 'RAZ Map' avec, toujours, l'option "TWINS" ;
- depuis le tableau en 'BDD'. Lorsque tu désires sélectionner ta liste de produits à "mapper", tu cliques sur ['B1] "Code", initialement en vert, qui vire au rouge.
Une fois close, tu valides cette multi-sélection en recliquant sur "Code".
- une fois dans l'USF, tu as accès aux mêmes options que le fichier précédent : "TWINS" + clic sur le bouton de couleur pour effacer une sélection,...
iCol = Len(sTxt)
With Worksheets("BDD")
iRow = .Range("B:B").Find(what:=sTxt, lookat:=xlPart, LookIn:=xlValues, searchdirection:=xlNext).Row
If iRow > 0 Then
Me.Controls("txt" & iIdx * 100).Text = .Range("B" & iRow).Value
Me.Controls("txt" & iIdx * 100).SelStart = iCol
Me.Controls("txt" & iIdx * 100).SelLength = Len(Me.Controls("txt" & iIdx * 100).Text) - iCol
Me.Controls("cmd" & iIdx * 100).Caption = Str(iCol)
Do
For x = 1 To 16
Me.Controls("lbl" & (iIdx * 100) + x).Caption = .Cells(iRow, x + IIf(x = 1, 0, 2))
Next
iOK = 1
If Me.chkTwins.Value = True And Left(.Cells(iRow + 1, 2), iCol) = sTxt Then
iOK = 0
iRow = iRow + 1
iIdx = iIdx + 1
If iIdx >= Val(Me.cmdPlan.Caption) Then
Me.cmdPlan.Caption = IIf(iIdx + 1 > 30, "30", CStr(iIdx + 1))
FicheArticle.Height = 66 + (Val(Me.cmdPlan.Caption) * 18)
Me.cmdBarre.Height = (Val(Me.cmdPlan.Caption) * 18) - 3
End If
Me.Controls("txt" & iIdx * 100).Text = .Range("B" & iRow).Value
End If
Loop While Me.chkTwins.Value = True And iOK = 0 And iIdx < 31
End If
End WithA tester et corriger selon tes indications!
A+
Salut Artinore,
je vais t'imaginer un truc où tu pourras sélectionner plusieurs plages de codes de ta BDD pour les intégrer automatiquement dans la USF.
Cependant :
- il faudra alors que ces codes apparaissent tous dans l'écran. Pas question de faire défiler pour ajouter des plages!
- limiter le nombre de codes, quand même, ou alors, tu me dis combien de lignes je dois prévoir dans l'USF... qui n'est pas extensible à l'infini!
Pas avant ce soir, voire cette nuit!
A+
Salut Curulis,
Salut Paritec,
Avec cette autre version mon problème est résolu.
Merci pour votre aide.
Artinore