Macro: Recherche approximative, mais pour un mot

Payou

XLDnaute Occasionnel
Bonjour a tous,

J'aurais voulu savoir s'il existe une fonction VBA, qui me permettrait d'afficher des resultats approchants, mais dont la recherche est un mot.

Pour etre plus clair:

Je voudrais faire une recherche approximative du type:

"Nom du produit" est le nom du produit lol

Mais si je tape le mot "produit" donc seulement une partie, il m'affiche tout de meme en resultat de la recherche: "Nom du produit"

Cela est-il faisable etant donner que ce ne sont pas des chiffres?

Merci de vos reponses:),

Payou
 
C

Compte Supprimé 979

Guest
Re : Macro: Recherche approximative, mais pour un mot

Bonjour Payou,

Oui, c'est possible ;)
Voilà le code que j'utilise pour trouver la ligne d'une recherche

Code:
Function LigFind(Sht As Worksheet, Col As String, Quoi As String, Optional Partie As Boolean)
  Dim VLookAt
  ' Définit la façon de chercher
  If Partie = True Then VLookAt = xlPart Else VLookAt = xlWhole
  ' Met la ligne trouvée à ZERO
  LigFind = 0
  ' Effectue la recherche
  On Error Resume Next
  With Sht.Range(Col & ":" & Col)
    LigFind = .Find(What:=Quoi, LookIn:=xlValues, [COLOR=blue][B]LookAt:=VLookAt[/B][/COLOR], SearchOrder:=xlByColumns, _
     SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
  End With
  On Error GoTo 0
End Function
Ce qui est important c'est le LookAt qui doit être sur : xlPArt
si tu veux trouver une partie

Appel de la fonction par :
Code:
LigClt = LigFind(Sheets("NomFeuill"), "A", MotAChercher, True)

A toi d'adapter le code pour effectuer ce que tu demandes ;)

A+
 
Dernière modification par un modérateur:

Payou

XLDnaute Occasionnel
Re : Macro: Recherche approximative, mais pour un mot

Bon c'est ma premiere macro, mais merci en tout cas a toi. Je vais essayer de faire ce que je peux, a force de trifouiller ca devrait finir par passer :)

MERCI BEAUCOUP !!!
 
C

Compte Supprimé 979

Guest
Re : Macro: Recherche approximative, mais pour un mot

Re,

Oups, si c'est ta première macro ça va être dur :p

Pour appeler la fonction, il faut mettre ce code
Code:
LigClt = LigFind(Sheets("NomFeuille"), "A", MotAChercher, True)

"A" est la colonne de recherche
True = seulement une partie

Voili, voilà ;)

Sinon, si c'est possible, mets ton fichier sur le forum, nous t'intègrerons le code

A+
 
Dernière modification par un modérateur:

Payou

XLDnaute Occasionnel
Re : Macro: Recherche approximative, mais pour un mot

Private Sub Worksheet_Change(ByVal Target As Range)
Cells.EntireRow.Hidden = False
If Target.Value = vbNullString Then Exit Sub
If Target.Address = "$D$7" Then
Range("D7").Select
Selection.Copy
Sheets("Batch request").Select
ActiveSheet.Paste
Sheets("Research").Select
Range("D7").Select
Range("D7").ClearContents
Sheets("Batch request").Select
End If

C'est pour cette partie que jqurqis besoin de la fonction... Merci en tout cas

Cells.EntireRow.Hidden = False
If Target.Value = vbNullString Then Exit Sub
If Target.Address = "$D$8" Then
Range("D8").Select
Selection.Copy
Sheets("Model request").Select
ActiveSheet.Paste
Sheets("Research").Select
Range("D8").Select
Range("D8").ClearContents
Sheets("Model request").Select

End If
End Sub
 
C

Compte Supprimé 979

Guest
Re : Macro: Recherche approximative, mais pour un mot

Re,

Que veux tu faire exactement en texte clair :confused:

Car je ne vois pas ou tu veux intégrer l'appel de la fonction.

A+
 

Payou

XLDnaute Occasionnel
Re : Macro: Recherche approximative, mais pour un mot

Desole,

Actuellement, la macro fait un copier coller du modele entrer, le copie, et se lance alors une recherche, qui me fait apparaitre tout les emplacememts dans mon stock du produit concerne.

Mais certains nom de produits sont super long, et voudrais donc qu'en en tapant qu'une partie, il me trouve quand meme mon emplacement.

Je te donnne pas les bonnes infos c'est ca ?

En tout cas merci de ton aide, j'appreci enormement>

Payou
 

Payou

XLDnaute Occasionnel
Re : Macro: Recherche approximative, mais pour un mot

Rarement vu un boulet pareil, je t'ai pas donner la bonne partie de la macro...

Je vais passer pour un con, mais voila la bonne partie :S

Private Sub Worksheet_Change(ByVal Target As Range)
Cells.EntireRow.Hidden = False
If Target.Value = vbNullString Then Exit Sub
If Target.Address = "$E$5" Then
Application.ScreenUpdating = False
For i = 9 To Range("A" & Rows.Count).End(xlUp).Row
Rows(i).Hidden = IIf(Range("A" & i).Value = Target.Value, False, True)
Next i
Application.ScreenUpdating = True
End If
End Sub

C' est dans cette macro que sont copier les infos de la macro superieur. Je voudrais donc que cette macro puisse me trouver des noms approximatifs de mes produits...
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Macro: Recherche approximative, mais pour un mot

Re,

Ne t'inquiète pas, juste le temps de déjeuner, prendre une douche, etc ... :D

Vu le code il y a plus simple que ce que je t'ai donné ;)
Donc je pense qu'il faudrait faire un truc du style
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Cells.EntireRow.Hidden = False
If Target.Value = vbNullString Then Exit Sub
If Target.Address = "$E$5" Then
Application.ScreenUpdating = False
For i = 9 To Range("A" & Rows.Count).End(xlUp).Row
' Rechercher une occurence de chaine dans une autre sans prendre en compte les majuscules/minuscules
Rows(i).Hidden = IIf([COLOR=blue][B]InStr(1, Range("A" & i).Value, Target.Value, vbTextCompare) > 0[/B][/COLOR], False, True)
Next i
Application.ScreenUpdating = True
End If
End Sub

A tester ;)

A+
 

Payou

XLDnaute Occasionnel
Re : Macro: Recherche approximative, mais pour un mot

Desole je me remds pas trop compte de l'heure qu'il est en France vu que je suis a Singapour.

Enfin tout ca pour dire que: TU ES JUSTE TROP FORT...

Ca marche pile poil comme il faut, merci a toi, merci a ce forum, et merci merci !!!!
 
C

Compte Supprimé 979

Guest
Re : Macro: Recherche approximative, mais pour un mot

Re,

Faut dire aussi que je me suis levé tard, qu'elle larve je fais :D;)
Ici il est 11h du mat

Je suis heureux d'avoir pu t'aider, toi qui est si loin :)

A+
 

Delors

XLDnaute Nouveau
Macro: Recherche approximative multicriteres, mais pour un mot

salut .:)

j'ai a priori le meme pb que payou, mais moi je ne sais pas comment integrer la fonction LigFind dans mon script.

J'aimerais pouvoir effectuer une recherche approximative sur les criteres selectionnes. du style si dans le critere de recherche categorie, j'entre "stag" (par exemple), je pourrais obtenir la liste des personnes appartenant a la categorie "stagiaire".

ce serait vraiment un honneur si l'un dentre vous pouvait m'aider, etant donné que je debute dans les macros.

voici le fichier en question. merci d'avance. :)
 

Pièces jointes

  • TEST_macro_V4_reussi.zip
    48 KB · Affichages: 117
  • TEST_macro_V4_reussi.zip
    48 KB · Affichages: 122
  • TEST_macro_V4_reussi.zip
    48 KB · Affichages: 120

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote