Bonjour,

Il y a quelques jours j'ai créé ce post http://www.developpez.net/forums/d21...colonnes-plus/

La solution apportée est effectivement fonctionnelle (et m'a beaucoup apporté ), mais semble limitée à des chaines de caractère .

Si je souhaite maintenant rechercher en fonction d'un nombre celà ne fonctionne pas. Qui plus est je dispose d'un format spécial (4 digits "0000") :

Nom : Excel2.JPG
Affichages : 94
Taille : 37,3 Ko

mon userform a cette tête :

Nom : Excel3.JPG
Affichages : 93
Taille : 16,4 Ko

Et le code attaché est le suivant :

Userform :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Option Explicit
 
Private Sub btn_Search_Click()
    tbx_2 = Format(tbx_2.Value, "0000")
    recherche
End Sub
Module :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Option Explicit
 
Function getIndex(Name As String, Num As String) As Long
  Dim Result
  Result = Evaluate("match(1,(Tableau1[Nom]=""" & Name & """)*(Tableau1[N° Aléa]=""" & Num & """),0)")
  If IsError(Result) Then getIndex = 0 Else getIndex = Result
End Function
 
Sub test()
    UserForm1.Show
End Sub
 
Sub recherche()
    MsgBox (getIndex(UserForm1.tbx_1.Value, UserForm1.tbx_2.Value))
End Sub

Si j'applique ce qui m'avait été proposé précédemment avec une recherche sur les noms et prénoms (tbx_2 = prénom sans le format bien entendu et recherche dans la colonne "Prénom" au lieu de "N° Aléa") ça fonctionne mais pas avec la colonne "N° Aléa".

J'ai essayé :
  • en changeant "N° Aléa" par "Aléa" pour éviter un caractére spécial ==> ça n'a rien donné
  • en supprimant le format "0000" dans le code et dans le classeur ==> pas fonctionné non plus
  • en convertissant la tbx_2 par un CInt(tbx_2) ==> ça ne fonctionne pas



Ma question est donc : Comment faire une recherche sur une colonne qui contient autre chose que des chaines de caractères ? et comment faire lorsque l'on souhaite un format particulier ("0000" ou date jj/mm/aaaa) ?


En espérant avoir été clair