Comment fonctione la fonction recherche sous excel ?

fred2949

XLDnaute Nouveau
Bonjour,

je suis en train d'écrire une petite programmation permettant de faciliter la saisie d'informations.
Pour cela, je fais un masque de saisie qui invite à taper le nom du produit que l'on veut ajouter, et de là part une recherche dans le fichier (afin d'éviter les doublons).
Alors pour l'instant j'ai défini :

nomcom = userform1.textbox1

et je lance une recherche dans la feuille excel de la façon suivante :

For i = 2 To nombredeproduits
ActiveWorkbook.Sheets("liste des produits").Select
Cells(i, 1).Select
If ActiveCell.Value = nomcom Then

etc...

Ca fonctionne, cependant si celui qui écrit le produit à saisir avec une majuscule, le produit n'est pas retrouvé dans la feuille, et va donc le saisir une seconde fois.
Existe t-il un code permettant de recherche une suite de caractères, que ces caractères soient en minuscule ou en majuscule ? Comment faire pour que la recherche ne tienne pas compte des majuscules ? J'ai également la même interrogation concernant les accents, et les espaces...:eek:
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Comment fonctione la fonction recherche sous excel ?

Bonjour,

Avec FIND par exemple:

Méthode 1 (gestion d'erreur):

Code:
Sub cherche()
   nomCherche = InputBox("Nom cherché? ")
   On Error Resume Next
   Err = 0
   Range("A2:A14").Find(What:=nomCherche, LookIn:=xlValues).Select
   If Err = 0 Then
      Range(ActiveCell, ActiveCell.End(xlToRight)).Select
   Else
      MsgBox "Pas trouvé"
   End If
   On Error GoTo 0
End Sub

Méthode 2

Code:
Sub cherche2()
   nomCherche = InputBox("Nom cherché? ")
   Set result = Range("A2:A14").Find(What:=nomCherche, LookIn:=xlValues)
   If result Is Nothing Then
      MsgBox "Non trouvé"
   Else
      Range(result, result.End(xlToRight)).Select
   End If
End Sub


JB
Formation Excel VBA JB
 
G

Guest

Guest
Re : Comment fonctione la fonction recherche sous excel ?

bonjour,

En comparant les données en majuscule par:

If UCase(ActiveCell.Value) = UCase(nomcom)

ou en minuscule par:
If LCase(ActiveCell.Value) = LCase(nomcom)

A +
 

Discussions similaires

Statistiques des forums

Discussions
314 948
Messages
2 114 649
Membres
112 206
dernier inscrit
salah zabi