code pour une recherche aproximative

  • Initiateur de la discussion Initiateur de la discussion gunm
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gunm

Guest
Bonjour tous le monde.

Voici mon problème. J'aimerais faire une recherche via une macro. Le but est de taper le mot rechercher dans une boite de dialogue, ensuite il parcours la plage de donnée et il me la colorie. Mais ma recherche n'est pas forcément égale à la cellule.
Par exemple j'aimerai rechercher "Auch"
et s'il y a une cellule où il y a "auchan" je voudrais qu'il me la prenne en compte
Or dans mon code je met le signe "=" ce qui me pose problème.

Je pense que je doit ajouter a un moment donner le signe * mais je ne sais pas ou et comment.



voici mon code :

Sub recherche()

Dim societe As String
societe = InputBox("quel société recherché ?", "Recherche")

For i = 2 To 10
entreprise = Cells(i, 2).Value
If entreprise = societe Then
Cells(i, 2).interior.color=vbred
End If
end sub


merci de votre réponse
 
Re : code pour une recherche aproximative

Bonsoir Gunm,

Voici une modification de ton code qui réalise ce que tu souhaites :
VB:
Sub recherche()
    Dim societe As String
    societe = InputBox("quel société recherché ?", "Recherche")
    For i = 2 To 10
        entreprise = Cells(i, 2).Value
        If InStr(1, LCase(entreprise), LCase(societe)) > 0 Then
            Cells(i, 2).Interior.Color = vbRed
        End If
    Next
End Sub

Il manquait un "Next" dans ton code.

A+

Edit : Salut Jean-Marcel.
 
Re : code pour une recherche aproximative

Sub recherche()

Dim societe As String
Dim LaCellTrouve As Integer
societe = InputBox("quel société recherché ?", "Recherche")

If Not IsError(LaCellTrouve = Range("C:C").Find(What:=societe, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xl
Next, MatchCase:=True, _
SearchFormat:=
False).Row) Then
Cells(LaCellTrouve, 2).Interior.Color = vbRed
End If
End Sub

Une façon de le faire....
 
Dernière édition:
Re : code pour une recherche aproximative

merci pour vos réponses, ça marche a la perfection ! et super rapide en plus 😀

quelqu un pourrais m expliquer cette ligne du coup ?
InStr(1, LCase(entreprise), LCase(societe))

merci à vous !
 
Re : code pour une recherche aproximative

Re-bonsoir,

Je t'invite à positionner ton curseur sur Instr puis à appuyer sur la touche <F1>. L'aide EXCEL qui est très bien faite te dira :
InStr, fonction

Voir aussi Exemple Particularités
Renvoie une valeur de type Variant (Long) indiquant la position de la première occurrence d'une chaîne à l'intérieur d'une autre chaîne.
Syntaxe
InStr([start, ]string1, string2[, compare])
La syntaxe de la fonction InStr comprend les arguments suivants :
Élément Description start Facultatif. Expression numérique qui définit la position de départ de chaque recherche. Si cet argument est omis, la recherche commence au premier caractère. Si l'argument start contient une valeur de type Null, une erreur se produit. L'argument start est obligatoire si l'argument compare est indiqué. string1 Expression de chaîne dans laquelle la recherche est effectuée. string2 Expression de chaîne recherchée. compare Facultatif. Indique le type de comparaison de chaînes. Si l'argument compare est de type Null, une erreur se produit. Si l'argument compare est omis, la valeur de l'instruction Option Compare détermine le type de comparaison. Indiquez un LCID (LocaleID) correct pour respecter les règles locales spécifiques à la comparaison.

Ensuite, fais la même chose avec LCase (qui transforme tout en minuscule).

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
917
Réponses
15
Affichages
793
Réponses
4
Affichages
523
Réponses
4
Affichages
556
Retour