Macro de recherche

polo

XLDnaute Nouveau
Bonjour à tous,
J'ai parcouru avec attention les anciens postes et je bugge toujours sur ma macro de recherche depuis 1 semaine !
Voici ma problématique :
En fait, mon souhait est d'avoir une macro qui me permettent les choses suivantes :
- Ouverture de message lorsque l'utilisateur clique sur le bouton recherche
- message = "entrez le nom du produit recherché"
- recherche dans plusieurs colonnes si le produit est présent avec 2 difficultés
= cherchez même si le mot fait partie d'une expression (ex= recherche = beurre, soit = rechercher les cases ou beurre apparait mais aussi les cases type "beurre allégé" )
= si la recherche n'aboutis pas, mettre un message, "votre recherche n'as pas aboutie, faites votre demande de produits par @ à l'adresse : toto@titi.com en mettant la date et le sujet dans le titre du message = recherche de produit X.
= si la recherche aboutis, masquez les lignes ou le mot n'apparait pas et ne conserver que les lignes avec le mot de recherche.
Puis permettre par un bouton à coté de celui de recherche de faire une nouvelle recherche, et donc réafficher les lignes masquées avant de reéxécuter la macro.
Voila !
Bon j'ai bidouillé plusieurs macros et au final cela me donne un joyeux bazard qui ne tourne pas !
Si une bonne âme arrive à me décoincer de mon problème cela serait sympa !
Je précise que je suis débutant en VB.
Merci de votre aide !
 

James007

XLDnaute Barbatruc
Re : Macro de recherche

Bonjour,

Au bas de cette page, tu trouveras cinq discussions similaires ... pleines d'inspiration ...

Pour ce qui est de ta macro qui ne fonctionne pas, le plus simple est de la partager avec le Forum ... pour que des suggestions précises te soient apportées ...

A +
:)
 

polo

XLDnaute Nouveau
Re : Macro de recherche

Hello Mister Bond
J'ai regardé avec attention les infos conseillées mais je bloque toujours
Voila ou j'en suis :

Sub RECHERCHE()
Application.ScreenUpdating = False

Dim I As Long
Dim Plage As Range
Set Plage = Range("A:A" & Range("A65536").End(xlUp).Row)

Message = "Entrez le produit à chercher"
Title = "Recherche d'un produit"
MyValue = InputBox(Message, Title, Default)
Range("A1").Select
For I = 1 To xxx
If ActiveCell.Value = MyValue Then GoTo Fin
If ActiveCell.Value = "" Then GoTo Fin
ActiveCell.Offset(1, 0).Range("A1").Select
Next
For I = Plage.Cells.Count To 1 Step -1
Plage.Cells(I).EntireRow.Hidden = True
If InStr(Plage.Cells(I).Text, Range("F3").Text) Then
Plage.Cells(I).EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub

Qu'en penses-tu ?
Merci de ton aide !
 

polo

XLDnaute Nouveau
Re : Macro de recherche

yesss
pas mal tu m'aides à avancer dans la bonne direction :
Par contre je bloque sur les points suivants :

- n'affiche que la première ligne ou apparait le mot recherché
- masque les cases supérieures suite au lancement de la macro recherche

Je voudrais en plus que si le produit ne se trouve pas dans la liste qu'un message apparaisse en proposant d'envoyer un mail pour demander le produit manquant...

tu me suit ?
EN pj la ou je bloque !
Merci
 

Pièces jointes

  • Copie de TestFind-1.xls
    45 KB · Affichages: 316

polo

XLDnaute Nouveau
Re : Macro de recherche

effectivement un pas de géant !
Par contre quand je clique sur le bouton de recherche et que je clique sur annuler = ca bug !
De plus, mon ficher comporte plusieurs plans, si ces derniers sont fermé, la recherche bugge.
Comment-faire pour que dès le départ la macro recherche ouvre tous les plans et que bouton avec macro voirtout "nettoie" la recherche puis ferme l'arborescence du plan ?
Penses tu que cela est possible ?

Enfin, si jamais la recherche est infructueuse, permettre à l'utilisateur d'envoyer directement un mail avec le produit qu'il recherche ?
Qu'en penses tu de tout cela ?
Merci bcp de ton aide !
Cordialement,
 

polo

XLDnaute Nouveau
Re : Macro de recherche

Hello James
Alors voici la ou j'en suis dans ma macro,
Par contre, je n'arrive pas à terminer ma macro de recherche comme je le souhaite.

Je te rappelle ma macro
PHP:
Sub RECHERCHE()

Dim Plage As Range
Dim rFoundCell As Range
Dim lCount As Long
Dim Message As String
Dim Title As String
Dim MyValue As String
Dim derl As Long
Dim rFound As Range



Message = "Entrez le produit à chercher"
Title = "Recherche d'un produit"
MyValue = InputBox(Message, Title, "" )
Cells.EntireRow.Hidden = False
derl = Range("A65536" ).End(xlUp).Row
Set Plage = Range("A5:A" & derl)
Set rFoundCell = Range("A5" )
If MyValue = "" Then Exit Sub

Cells.EntireRow.Hidden = False
For lCount = 1 To WorksheetFunction.CountIf(Plage, "*" & MyValue & "*" )
Set rFoundCell = Plage.Find(What:=MyValue, After:=rFoundCell, _
LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False)
If Not rFoundCell Is Nothing Then
'construire la plage des résultats
If rFound Is Nothing Then
Set rFound = rFoundCell
Else
Set rFound = Union(rFound, rFoundCell)
End If
End If
Next lCount

If rFound Is Nothing Then
MsgBox "Votre recherche n'aboutit pas, si vous voulez demander le produit par mail, cliquez sur OK, sinon annuler"
With ActiveWorkbook
'il suffit d'ajouter dans le corps du message la valeur de MyValue
.SendMail Recipients:=Array("toto@toto.com" ), Subject:="DEMANDE DE PRODUIT " & Format(Date, "dd/mmm/yy" )
End With
Exit Sub
End If
On Error Resume Next
Plage.EntireRow.Hidden = True
rFound.EntireRow.Hidden = False
End Sub

Ma volonté est la suivante =
si mon utilisateur ne trouve pas le produit qu'il recherche, je souhaite qu'un message s'affiche = votre recherche n'a pas abouti, voulez-vous demander ce produit par mail, et qu'il est le choix d'envoyer un mail (sans le fichier joint)
Voila
Si tu peux m'aider la dessus, tu serais génial !
Merci
 

James007

XLDnaute Barbatruc
Re : Macro de recherche

Bonjour,

Est-ce-qu'au moment où nous parlons ta Message Box fonctionne, et apparait correctement lorsque le produit n'est pas du tout présent dans ta liste ...?

Si oui, cela signifie que tu veux gérer la réponse de l'utilisateur... est-ce bien cela ?

A +
:)
 

polo

XLDnaute Nouveau
Re : Macro de recherche

effectivement, si le produit n'est pas présent dans la liste, le message apparait mais je n'arrive pas a laisser le choix à l'utilisateur d'envoyer ou non un mail.
ET si il veux envoyer un mail, je n'arrive pas à ce qu'il n'y ai pas le ficher en pièce jointe
...
Tu vois ce que je veux dire ?
 

James007

XLDnaute Barbatruc
Re : Macro de recherche

Ok ...

Je comprends ta prochaine étape ... il te faut un message box qui offre un choix à l'utilisateur pour ensuite pouvoir gérer sa réponse ...

Mais je pense que, pour la clarté du Forum, il faudrait que tu ouvres un nouveau post avec ce sujet ... et même plus tard un dernier post pour l'envoi de l'email ...

A+
:)
 

Discussions similaires

Statistiques des forums

Discussions
312 484
Messages
2 088 789
Membres
103 967
dernier inscrit
juljuljul