Probleme avec find et des dates

Résolu/Fermé
ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023 - Modifié le 23 oct. 2021 à 20:50
yg_be Messages postés 22911 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 juin 2024 - 24 oct. 2021 à 21:02
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
A voir également:

2 réponses

yg_be Messages postés 22911 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 juin 2024 1 480
Modifié le 23 oct. 2021 à 21:42
bonjour,
peux-tu partager ton fichier?
0
ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023 8
23 oct. 2021 à 23:12
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
0
yg_be Messages postés 22911 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 juin 2024 1 480
24 oct. 2021 à 19:29
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
0
ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023 8 > yg_be Messages postés 22911 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 juin 2024
24 oct. 2021 à 20:36
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
0
yg_be Messages postés 22911 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 juin 2024 1 480 > ptitpanda Messages postés 65 Date d'inscription dimanche 5 août 2012 Statut Membre Dernière intervention 8 avril 2023
24 oct. 2021 à 21:02
Il 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.
0