Salut
Valeur_Cherchee = Range("Formulaire")...
Il vaudrait mieux préciser le classeur et la feuille sur lesquels tu travailles
Valeur_Cherchee = ThisWorkBook.Worksheets(....).Range("Formulaire")...
Pour ce qui est de ta recherche en elle-même, je ne comprends pas trop. Le format d'affichage d'une date n'a pas d'importance, si tu recherches le 3 Juillet 1990, peu importe le formatage que tu mets en place dans ta cellule, 3/7/1990, 03/07/90,.. ça reste la même date, tu ne devrais pas avoir à modifier quoi que ce soit pour la chercher. A moins que Find recherche une chaine et non une date.
Dans ce cas, utilises plutôt Format() pour modifier la date que tu recherches avec find et lui donner le format "jj-jjjj"
Plus globalement, il n'est pas utile de sélectionner une cellule ou un onglet pour modifier ou rechercher quelques choses dessus.
Plutôt que de faire un goto, utilise ta référence pour pointer la cellule ou l'onglet
1 2 3 4 5 6 7 8 9 10 11
|
Dim Valeur_Cherchee as Date
Dim NextCell as Range
Valeur_Cherchee = ThisWorkBook.Worksheet("Feuil1").Range("Formulaire") '.....
With ThisWorkBook.Worksheet("Feuil2").Range("Reference")
Set NextCell = .Find(Valeur_Cherchee ,After:=.cells(1,1), LookIn:=xlValues) 'Essai comme ça avec la variable typée Date
Set NextCell = .Find(Format(Valeur_Cherchee,"jj-jjjj") ,After:=.cells(1,1), LookIn:=xlValues) 'Sinon comme ça
NextCell.Interior.Color = 52879367
End With |
Je n'ai pas testé le code, c'est un code de principe.
[Edit]
Bon ça m'intriguais, j'ai fait quelques essais.
alors il faut utiliser xlFormulas et non xlValues... Sinon, en effet Find cherche dans ce qui est affiché et ne tient pas compte de la donnée brute.
.Find(Valeur_Cherchee ,.cells(1,1), xlFormulas, xlWhole)
[/Edit]
++
Qwaz
Partager