mini moteur de recherche

franck8235

XLDnaute Junior
Bonjour

je ne suis pas du tout expert en vba je chercherai a
avoir un code pour mini moteur recherche de nom et un affichage dans une fenêtre
de listé déroulante
Bon pas simple a expliquer tout cela voici l'exemple


Merci à tous
 

Pièces jointes

  • moteur.xls
    16.5 KB · Affichages: 83
  • moteur.xls
    16.5 KB · Affichages: 87
  • moteur.xls
    16.5 KB · Affichages: 84

Hulk

XLDnaute Barbatruc
Re : mini moteur de recherche

Hello, Frank, PMO,

Peut-être comme ça... si j'ai bien compris :D

Cdt, Hulk.
 

Pièces jointes

  • moteur.xls
    31 KB · Affichages: 123
  • moteur.xls
    31 KB · Affichages: 125
  • moteur.xls
    31 KB · Affichages: 126

the09

XLDnaute Nouveau
Re : mini moteur de recherche

Bonjour, ce premier fichier joint, me convient, mais moi j'ai en faite dans mes données, plusieur mots et nom un seul!! et j'aimerai trouver un mot qui va etre en 3eme ou 4eme position!! est-ce possible????

merci
 

the09

XLDnaute Nouveau
Re : mini moteur de recherche

Bonjour PMO,

cela me convient, juse encore une petite chose que j'ai oublié de préciser, c'est juste sur une feuille bien précise ( je ne veux pas avoir le choix de la feuille) toujours sur la feuille intitulée Base documentaire
 

PMO2

XLDnaute Accro
Re : mini moteur de recherche

Bonjour the09,

Pour votre cas particulier, essayez de remplacer le code du module2 par le code suivant (quelques bidouilles y figurent)

Code:
Const MA_FEUILLE As String = "Base documentaire" 'modif pour une seule feuille

Type structTitresColonnnes
  Adresse As String
  Categorie As Variant
  Intitule As Variant
  Nature As Variant
  Inscription As Variant
  Cloture As Variant
  Sites As Variant
  Programmes As Variant
  Liens As Variant
End Type

Function Cherche(pmoWhat As String, pmoMatchCase As Boolean, pmoLookAt As Long) As Variant
Dim S As Worksheet
Dim R As Range
Dim First$
Dim Last$
Dim Colonnes() As structTitresColonnnes
Dim T()
Dim i&
Dim j&
Dim g&
Dim bool As Boolean
On Error GoTo Erreur
Application.EnableEvents = False
Application.DisplayAlerts = False
For Each S In ActiveWorkbook.Worksheets
  If S.Name = "tempo___pmo" Then
    S.Visible = xlSheetVisible
    S.Delete
    Exit For
  End If
Next S
For Each S In ActiveWorkbook.Worksheets
  
  If S.Name = MA_FEUILLE Then 'modif pour une seule feuille

    Set R = S.Cells.Find(after:=S.[iv65536], What:=pmoWhat, MatchCase:=pmoMatchCase, _
        LookAt:=pmoLookAt, SearchOrder:=xlByColumns)
    If Not R Is Nothing Then
      First$ = R.Address
      Last$ = First$
      GoSub Inscription
      Do
        Set R = S.Cells.FindNext(after:=S.Range(Last$))
        If Not R Is Nothing And R.Address <> First$ Then
          Last$ = R.Address
          GoSub Inscription
        End If
      Loop While Not R Is Nothing And R.Address <> First$
    End If
    
  End If  'modif pour une seule feuille
  
Next S
If bool Then
  Set S = Sheets.Add
  S.Name = "tempo___pmo"
  S.Visible = xlSheetVeryHidden
  ReDim T(1 To UBound(Colonnes), 1 To 9)
  For i& = 1 To UBound(T)
    With Colonnes(i&)
      T(i&, 1) = .Adresse
      T(i&, 2) = .Categorie
      T(i&, 3) = .Intitule
      T(i&, 4) = .Nature
      T(i&, 5) = .Inscription
      T(i&, 6) = .Cloture
      T(i&, 7) = .Sites
      T(i&, 8) = .Programmes
      T(i&, 9) = .Liens
    End With
  Next i&
  Set R = S.Range(S.Cells(1, 1), S.Cells(UBound(T, 1), UBound(T, 2)))
  R = T
  Cherche = R
End If
Application.DisplayAlerts = True
Application.EnableEvents = True
Exit Function
Erreur:
Application.DisplayAlerts = True
Application.EnableEvents = True
MsgBox "Erreur " & Err.Number & vbCrLf & vbCrLf & Err.Description
Exit Function
'--------------
Inscription:
bool = True
g& = g& + 1
ReDim Preserve Colonnes(1 To g&)
With Colonnes(g&)
  .Adresse = R.Parent.Name & "!" & R.Address(False, False)
  Set R = S.Range("a" & R.Row & "")
  .Categorie = R
  .Intitule = R.Offset(0, 1)
  .Nature = R.Offset(0, 2)
  .Inscription = R.Offset(0, 3)
  .Cloture = R.Offset(0, 4)
  .Sites = R.Offset(0, 5)
  .Programmes = R.Offset(0, 6)
  .Liens = R.Offset(0, 7)
End With
Return
End Function

Cordialement.

PMO
Patrick Morange
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 875
Membres
103 980
dernier inscrit
grandmasterflash38