trouver une date dans une feuille excel

M

martin

Guest
Voici mon code . Je veux poser une question sur la dernière date qui apparait dans la feuille c'est-à dire la dernière inscrite dans ma feuille et trouver son adresse... par contre il ne trouve rien, il trouve un résultat seulement si j'inscrit un chiffre comme 2... et qu'il y a un deux dans la page...

Sub TestFordate()
On Error Resume Next

Dim AncDate

AncDate = InputBox("Quelle est la dernière date affichée ?", "Dernière date")
'exemple: 2003-04-01

Err = 0


Cells.Find(What:=AncDate, LookIn:=xlValue).Activate

MsgBox Err

If Err <> 0 Then
MsgBox AncDate + " pas trouvé !"
Else: MsgBox AncDate + " trouvé en " + ActiveCell.Address
End If


End Sub


Pouvez-vous m'aider svp merci...
 
M

Monica

Guest
Assures toi que la date recherchée est bien au format date (et non un format date personnalisé).
J'ai exécuté ton code tel quel et ça fonctionne : l'adresse de la date est bien retournée dans une boite de dialogue
 
M

martin

Guest
j'ai essayé le code en mettant ma date en format date mais si tu regardes ce que contient la variable AncDate, elle est égale à 0. Alors il recherche la première cellule ayant un zéro dedans... si la page contient seulement la date ca fonctionne mais si il y a un zéro dans une cellule avant il trouvera ce zéro, malheureusement. J'ai beau me déclarer un variable date au lieu de integer, il ne veut rien savoir. Je crois que problème provient du FIND et qu'il n'aime pas le format date que je lui donne. Merci et si jamais tu as une autre idée ne te gène pas pour me l'envoyer...
 
G

GM

Guest
Salut Martin

Regarde dans cette procédure il y à peut-être ce que tu cherche

Sub VerifierEcheances()
Dim ZoneATester As String
ZoneATester = ActiveWindow.RangeSelection.Address
If ZoneATester = Null Then
MsgBox "Sélectionnez la plage de cellules à tester.", _
vbOKOnly & vbInformation
Exit Sub
End If

Dim DateEcheance As Variant
DateEcheance = InputBox("Indiquez la date d'échéance.", _
"Echéance des opérations en cours", Date + 30)
DateEcheance = CDate(DateEcheance)

Dim CellTest As Range
Dim DatesHorsEcheance As Boolean
DatesHorsEcheance = False
For Each CellTest In Range(ZoneATester)
If IsDate(CellTest) = True Then
If CellTest.Value > DateEcheance Then
CellTest.Interior.ColorIndex = 6
DatesHorsEcheance = True
End If
End If
Next

If DatesHorsEcheance = True Then
Dim RedéfinirLaDate As Integer
RedéfinirLaDate = MsgBox("Des problèmes d'échéance ont été trouvés." & _
Chr(10) & "Souhaitez-vous spécifier une autre date ?", _
vbYesNo + vbQuestion, "Redéfinir la date d'échéance ?")
If RedéfinirLaDate = vbYes Then
Range(ZoneATester).Interior.ColorIndex = xlNone
Call VerifierEcheances
End If
Else
MsgBox "Pas de problème d'échéance.", _
vbOKOnly + vbInformation, "Echéancier respecté"
End If
End Sub

Gérard
 

Discussions similaires

Statistiques des forums

Discussions
314 021
Messages
2 104 671
Membres
109 100
dernier inscrit
Andpeno