Recherche de date dans une ligne avec la Methode find

Adri3n

XLDnaute Nouveau
Bonjour à tous,

Ce n'est pas mon premier message sur le forum mais il me semble que mon compte ait été supprimé pour non utilisation depuis un moment...

Anyway, je rencontre un petit souci... J'ai cherché des solutions au préalable sur le forum, j'ai appliqué les modifications proposées sans succès...

Je cherche à créer un outil de planification et pour cela je dois rechercher une date dans un calendrier. Les dates sont toutes sur une ligne (ici la ligne 3).

Exemple:
valeur = "05/01/2015"

Dans mon tableau j'ai toutes les dates de l'année 2015 sur la même ligne au format JJ/MM/AAAA

Code:
datetmp = "05/01/2015"
'MsgBox CDate(datetmp)
Set PositionCelluleDateSalle = Sheets("Contraintes-Salle").Range("3:3").Find(CDate(datetmp), lookAt:=xlWhole)
If PositionCelluleDateSalle Is Nothing Then 'si on ne trouve rien, ce qui est impossible
 MsgBox "Date Introuvable"
Else
 MsgBox ("Les coordonnees de la date trouvee sont " & PositionCelluleDateSalle)
End If

Le souci, c'est que PositionCelluleDateSalle est toujours égale à Nothing...

bref...

Merci d'avance pour votre aide.
Adrien
 

Adri3n

XLDnaute Nouveau
Re : Recherche de date dans une ligne avec la Methode find

Bon au final, ce que j'ai fait est très moche, mais c'était une solution,

J'ai ajouté une ligne à ma feuille excel en usant de la formule : =TEXTE(I3;"jj/mm/aaaa") que j'ai copié sur toute ma ligne de dates.
Au final, je vais ma recherche sur la nouvelle ligne. Bingo !

Néanmoins, si vous avez la solution 'propre', je suis preneur.

Adrien
 

Pierrot93

XLDnaute Barbatruc
Re : Recherche de date dans une ligne avec la Methode find

Bonjour,

regarde peut être du coté de l'argument "lookin" de la méthode "find", sans voir tes données et pouvoir tester, difficile d'en dire plus :

Code:
Set PositionCelluleDateSalle = Sheets("Contraintes-Salle").Range("3:3").Find(CDate(datetmp), LookIn:=XlFormulas, lookAt:=xlWhole)

bonne journée
@+
 

gbinforme

XLDnaute Impliqué
Re : Recherche de date dans une ligne avec la Methode find

Bonjour à tous,

Tu devrais utiliser la définition correcte des variables :
Code:
Dim datetmp As Date, PositionCelluleDateSalle As Range
datetmp = DateValue("05/01/2015")
'MsgBox CDate(datetmp)
Set PositionCelluleDateSalle = Sheets("Contraintes-Salle").Range("3:3").Find(CDate(datetmp), lookAt:=xlWhole)
If PositionCelluleDateSalle Is Nothing Then 'si on ne trouve rien, ce qui est impossible
 MsgBox "Date Introuvable"
Else
 MsgBox ("Les coordonnees de la date trouvee sont " & PositionCelluleDateSalle)
End If

Ainsi cela devrait fonctionner
 

Docmarti

XLDnaute Occasionnel
Re : Recherche de date dans une ligne avec la Methode find

Bonjour à tous.

Bon au final, ce que j'ai fait est très moche, mais c'était une solution,

J'ai ajouté une ligne à ma feuille excel en usant de la formule : =TEXTE(I3;"jj/mm/aaaa") que j'ai copié sur toute ma ligne de dates.
Au final, je vais ma recherche sur la nouvelle ligne. Bingo !

Néanmoins, si vous avez la solution 'propre', je suis preneur.

Adrien

La seule solution si tu veux utiliser FIND pour trouver une date et ne pas te préoccuper de la largeur de la colonne ou du format DATE des cellules, c'est de ne pas utiliser FIND pour chercher une date.

Code:
Sub trouver()
 
datetmp = "05/01/2015"

Set PositionCelluleDateSalle = Nothing
For Each cell In Sheets("Contraintes-Salle").Range("3:3")
 If CDate(datetmp) = cell Then
  Set PositionCelluleDateSalle = cell
  Exit For
 End If
Next

If PositionCelluleDateSalle Is Nothing Then
 MsgBox "Date Introuvable"
Else
 PositionCelluleDateSalle.Select
 MsgBox ("Les coordonnees de la date trouvee sont " & PositionCelluleDateSalle)
End If

End Sub


Docmarti.
 

Discussions similaires

Réponses
12
Affichages
575

Statistiques des forums

Discussions
312 225
Messages
2 086 412
Membres
103 202
dernier inscrit
Claire2BM