Probleme avec find et des dates

Résolu
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:

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

  1. 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
    1. Contributeur
      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
    2. @yg_beNickel ç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
    3. Contributeur
      @ptitpandaIl me semble que, après ta modification, la recherche ne se fait plus que sur le jour du mois, pas sur la date complète. Si cela te convient, parfait!

      Comme tu n'as expliqué ce que tu voulais obtenir, difficile de faire une suggestion.