Fonction find pour trouver une date

Fermé
namm - 1 déc. 2009 à 10:24
 namm - 1 déc. 2009 à 15:46
Bonjour,

Apres avoir parcouru le forum, je suis toujours à la recherche d'une réponse au probléme suivant (désolé s'il s'avére que la réponse existe dejà quelque part).

Débutant dans l'utilisation de vba, voici ce qui me bloque.

dans un fichier excel, j'ai un "menu" à la ligne 4, figé. dans la colonne A, on trouve les dates, A5=01/01/2009, en colonnes B, C et D on renseigne différents éléments (par exemple en b on demande les anniversaires, en c les mariages et en d les naissances).
ainsi une ligne est composée d'une date en a, puis des noms des personnes pour qui c'est l'anniversaire en b, pour qui c'est le mariage etc...

ce que j'aimerai c'est que lorsque je click sur un bouton en haut de la feuille (bouton créé sur la case b2), la ligne qui apparaisse sous mon "menu" soit la ligne correspondant à la date du jour (qui est visible en c2 car alimentée par d'autres pages du classeur).

voici ce que j'ai fais, par avance désolé pour les yeux....

Sub allera()

Dim celluletrouvee As range

Set celluletrouvee = range(range("A5"), range("A5").End(xlDown)).find(range("c2"), LookAt:=xlWhole)

celluletrouvee.Select

ActiveWindow.ScrollRow = ActiveCell

End Sub

et donc ca ne fonctionne pas, puisque cellulletrouvee = nothing.

des idées ?

merci d'avance,

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 déc. 2009 à 11:59
Bonjour
essaies
Set celluletrouvee = Range("A4:" & Range("A4").End(xlDown).Address).Find(Range("c2"), Range("A4"))
0
Merci Michel pour cette réponse.

Mais cela ne résoud pas mon probléme,

celluletrouvee n'a toujours pas de valeur (c'est à dire que

Set celluletrouvee = Range("A4:" & Range("A4").End(xlDown).Address).Find(Range("c2"), Range("A4"), on a encore celluletrouvee=nothing si on place le curseur dessus)


et donc apres ca bloque toujours au niveau de celluletrouvee.select

...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 déc. 2009 à 13:20
je ne comprend pas car j'avais testé avant de te répondre et c'était OK...
nota: il faut que les dates soient rigoureusement au m^me format
0
grace à l'aide d'un contributeur sur un autre forum, j'ai pu obtenir une réponse tres satisfaisante.

la voici pour ceux que ca pourrait interesser:

Sub test ()


Set c = ActiveSheet.Columns(1).find(CDate(range("C2")), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
ActiveWindow.ScrollRow = c.Row
End If

End Sub

et encore merci Michel pour ton aide!

Bonne fin de journée
0