plus c est long plus c est bon

jeannot68

XLDnaute Occasionnel
Bonjour a tous

Je cherche a créer un moteur de recherche pour base de donnée. j ai récuperer une application du forum que j ai tourner pour mes besoins. Ca marche mais je souhiaterai améliorer la compréhension.

1/ Je dois cliquer sur mon bouton "recherche par module" pour ouvrir une fenetre. est il possible d'avoir la fenetre directement sans passer par le bouton?

2/ Ensuite comment puis je activer le curseur directement dans ma zone de remplissage? au lieu de cliquer dedans?

3/ Apres avoir rempli ma zone de texte comment puis je valider qu'une seule fois avec le bouton entrer?

4 / Apres avoir valider ma reference par le bouton valider ou la touche entrer, s'affiche une userform1 qui fait apparaitre 1 listeview avec les différentes lignes ou l on trouve la réference de tout les onglets. comment faire pour faire apparaitre seulement ce que j ai tapé et non autre chose qui contient d'avantage de caractere(exemple je veux seulement MA6710 et non MA6710-02

5/ Je souhaiterai pouvoir afficher dans ma userform1, 2 liste views:1 pour regrouper les lignes qui correspondent aux 3 onglets (IO DELTA V GLUCOSE, IO DELTA V MARION, IO DELTA V SPIRAL) car ils ont tous les 3 le meme nombre de colonne et les meme entete puis une listeview qui regroupe les onglets (IO Glucose PROVOX; IO amidon PROVOX et IO utilités PROVOX)
exemple si l'on tape MA6358 je souhaiterai que les 3 premiere ligne apparaisse dans une liste box avec les entete et que les 4 derniere dans une autre liste box avec les entetes.
Si il ni a pas de donnée qui coorespondrait au liste view pouvoir mettre juste une phrase (exlisteview1 : Auncune données sur DELTA V et sur listeView 2: aucune donnée sur PROVOX)

6 / Pour ma list box 2 je souhaiterai pouvoir r rajouter 3 colonnes (File, IO, MCC) en fonctiondes valeurs. en fonction de la valeur de la colonne 2 et du premier chiffre de la colonne 3 il recherche les infos dans l'onglet correspondant (exemple tapons MP2928N nous avons dans la 2ème colonne UOC208 qui nous permet de chercher dans l'onglet UOC208, puis la valeur de la colonne 3 correspond a 1-8-4, le premier chiffre est 1 donc je doit retrouver dans la colonne 6 (entete File) de ma listeview le chiffre 1, dans la colonne 7 (en tete IO) le chiffre 2601 et dans la colonne 8 (entete MCC) la lettre M. Il arrive que les premier chiffre de la colonne 3 ne correspondent pas au chiffre de la colone File des onglet ex si l on tape PSH2854 on a dans la colonne 3 8-7-11, le premier chiffre 8 n est pas repertorié dans l'onglet UOC208 donc rien ne se passe

Je sais que j'en demande beaucoup mais c est pour mon boulot et beaucoup de gens compte sur ce petit programme
un grand merci pour votre aide


Cijoint.fr - Service gratuit de dépôt de fichiers
 

Bebere

XLDnaute Barbatruc
Re : plus c est long plus c est bon

bonjour Jeannot
explique ce que tu veux chercher et dans quelle feuille
ce que j'ai compris,faire une recherche dans les feuilles commençant par "IO...",rechercher
dans la colonne b(module)
alors dans selectvaleur2,il faut une combobox choix feuille et une combobox avec liste sans doublons des modules
tu confirmes ou tu expliques
à bientôt
 
C

Compte Supprimé 979

Guest
Re : plus c est long plus c est bon

Bonjour Jeannot68,

C'est un roman que tu nous as pondu là :eek:

Réponse 1 : oui
Dans ThisWorkbook, mettre
Code:
Private Sub Workbook_Open()
  Call recherche2
End Sub

Réponse 2 : dans ton USF -> Menu Affichage -> Ordre de tabulation
Mettre les boutons en dernier

Réponse 3 : tu peux utiliser l'évènement AfterUpdate de ton TextBox
Code:
Private Sub TextBox1_AfterUpdate()
  Select Case CStr(donnee(LBound(donnee) + 5))
  Case "textbox"
    If TextBox1.Value = "" Then
      Call MsgBox("Vous devez écrire une valeur", vbCritical, Application.Name)
      TextBox1.SetFocus
      Exit Sub
    End If
  Case "combo"
    If ComboBox1.Value = "" Then
      Call MsgBox("Vous devez sélectionner une valeur", vbCritical, Application.Name)
      ComboBox1.SetFocus
      Exit Sub
    End If
  End Select
  donnee = Array(ComboBox1.Value & TextBox1.Value)
  Unload Me
End Sub

Réponse 4 : En spécifiant trouver la valeur entière "XlWhole" et pas une partie "XlPart"
Code:
'---------------------------------------
' Module    : UserForm1/Initlistview1
' DateTime  : 23/12/2007 / 16:37
' Auteur    : JP14
' Utilisation     : remplir la listview
'---------------------------------------
Private Sub Initlistview1()
  Dim cel As Range
  Dim lig As Long
  'ligne2 = Mid(ListView1.ListItems(Item.Index).Key, 2, 50)
  nuitem = 0
  i = 1
  ListView1.ListItems.Clear
  For Each ws In Worksheets
    suite = 0
    For i1 = LBound(nomfeuille4) To UBound(nomfeuille4)
      If ws.Name = nomfeuille4(i1) Then suite = 1
    Next i1
    If suite = 0 Then
      lig = nulititre
      i = i + 1
      With Sheets(ws.Name)
        Do
          Set cel = .Range("a" & lig + 1 & ":" & Sheets(ws.Name).Cells.SpecialCells(xlCellTypeLastCell).Address(0, 0)) _
                    .Find(data1, LookIn:=xlValues, SearchOrder:=xlByRows, lookat:=[B][COLOR=blue]xlWhole[/COLOR][/B])
          If Not cel Is Nothing Then
            Call remplirligne(cel.Row, ws.Name, Chr(64 + i), ws.Name)
            lig = cel.Row
            trouve = 1
          Else
            Exit Do
          End If
        Loop
      End With
    End If
  Next ws
  Exit Sub
End Sub

Voilà pour le moment ;)

Pftttt .....
 

jeannot68

XLDnaute Occasionnel
Re : plus c est long plus c est bon

Bebere , BrunoM45, le forum

Merci de vos réponses.
Bebere, oui je souhaite une recherche dans les onglet qui commence par IO mais si il y a un résultat cela s affiche dans mes listview. actuellement j'ai une seule listview qui regroupe les résultats mais ce n est pas tres cohérent car les onglets IO DELTA V n ont pas le meme nombre de colonne ni d'entete que les onglet IO.... PROVOX.

Je souhaite donc pouvoir séparer ces deux résultats, qu ils soient bien distinct
 

jeannot68

XLDnaute Occasionnel
Re : plus c est long plus c est bon

le mot recherché se trouve dans les onglet IO DELTA V (il y en a 3) alors les résultats s'affiche dans la listview 1 et si il se trouve dans les onglets IO... PROVOX (il yen a 3) alors les résultats s affiche dans une listview2.

J espere etre assez compréhensible
Merci
 

Discussions similaires

Réponses
5
Affichages
214

Statistiques des forums

Discussions
312 217
Messages
2 086 352
Membres
103 195
dernier inscrit
martel.jg