Probleme avec find et des dates
Résolu
ptitpanda
Messages postés
67
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je me retourne vers vous car je cale
Dans ma cellule O12 j'ai ma 1ere date que je rentre manuellement (01/01/2022) au format jj.
Les cellules suivantes (vers la droite) sont simplement une incrementation (=O12+1, =P12+1, =Q12+1...) donc ça me fait un "planning"
sauf que lorsque je veux rechercher en VBA avec find la fin du mois il ne me la trouve pas alors qu'elle figure bien à la colonne AS, au bon format (date et non pas texte) voici en posant des espions comme quoi tout est correct mais j'ai toujours "Nothing" dans ma recherche

et voici mon code:
J'ai mis la variable "ttt" juste pour vérifier que les formats étaient bons.
Quelqu'un a t'il une idée svp?
Merci d'avance
Je me retourne vers vous car je cale
Dans ma cellule O12 j'ai ma 1ere date que je rentre manuellement (01/01/2022) au format jj.
Les cellules suivantes (vers la droite) sont simplement une incrementation (=O12+1, =P12+1, =Q12+1...) donc ça me fait un "planning"
sauf que lorsque je veux rechercher en VBA avec find la fin du mois il ne me la trouve pas alors qu'elle figure bien à la colonne AS, au bon format (date et non pas texte) voici en posant des espions comme quoi tout est correct mais j'ai toujours "Nothing" dans ma recherche

et voici mon code:
Sub Macro2()
'
Dim mois As Date
Dim trouvFM As Range
Dim ttt As Date
mois = CDate(WorksheetFunction.EoMonth(Range("O12"), 0))
With Sheets("Planning").Rows("12:12")
Set trouvFM = .Find(what:=mois, LookIn:=xlValues)
End With
ttt = Sheets("Planning").Range("AS12")
End Sub
J'ai mis la variable "ttt" juste pour vérifier que les formats étaient bons.
Quelqu'un a t'il une idée svp?
Merci d'avance
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
peux-tu partager ton fichier? -
oui pas de pb j'ai juste mis la ligne posant pb puisque le reste n'entre pas en jeu dans la programmation
https://www.cjoint.com/c/KJxvkOOyjEs
Bonne nuit-
ceci fonctionne, je pense:
Dim mois As Date Dim trouvFM As Range Dim cl As Range mois = WorksheetFunction.EoMonth(Range("O12"), 0) For Each cl In Sheets("Planning").Rows("12:12").Cells If IsDate(cl) Then If cl = mois Then Set trouvFM = cl Exit For End If End If Next cl- Nickel ça fonctionne bien,
je ne voulais pas passer par une boucle "for each" car je dois rechercher desfin de mois sur 4 ans (c'est vrai que dans le tableau fourni je n'avais mis que le début :( et donc c'est + long d'"éplucher" toutes les cellules sur 4 ans qu'avec un "find" mais cela fonctionne et je t'en remercie.
En fait j'ai changer mon format de recherche et je repars de ma derniere recherche et cela fonctionne et voilà le code que je viens de faire:
Dim mois As Integer Dim trouvFM As Range colDM = 15 For p = 0 To 48 'nbre de mois où je dois trouver le dernier jour mois = Format(CDate(WorksheetFunction.EoMonth(Range("O12"), p)), "dd") With Sheets("Planning").Rows("12:12") Set trouvFM = .Find(what:=mois, after:=Cells(12, colDM), LookIn:=xlValues) ' colDM étant la colonne du dernier jour du mois précédent If Not trouvFM Is Nothing Then colDM = trouvFM.Column + 1 ....suite du code End If End With Next p
Merci Bien pour ta réponse
-