2 pièce(s) jointe(s)
Question complémentaire recheche tableau structuré en VBA
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é :D), 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") :
Pièce jointe 592836
mon userform a cette tête :
Pièce jointe 592841
Et le code attaché est le suivant :
Userform :
Code:
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:
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 :oops: