Recherche d'une date dans un ligne en fonction d'une date dans une colonne

Signaler
Messages postés
2
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009
-
Messages postés
2
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009
-
Bonjour, mon pseudo l'indique : je me forme seul au VBA.
Mon Pb :  
 
Dans la colonne A, j'ai une liste de dates, format jj/mm/aaaa (dates à laquelle doivent être produits des articles)
En ligne 2, j'ai un calendrier sans les WE, sans les jours chômés (hé oui ! la crise !) (dates au format jjjj jj/mm)
Lors d'une recherche à partie de la colonne A, je voudrais avoir un message du genre "la date bidule n'existe pas dans le calendrier".
J'ai fait plein de recherches dans toutes sortes de forums, sans rien trouver ou qui soit de mes compétences.
Je sais que le travail sur les dates, dont la fonction "find", n'est pas facile du tout à maitriser.
Auriez vous une solution simple ?
Merci de votre aide.

2 réponses

Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Bonjour,
si le calendrier énumère de vrais dates formatées, comme tu le laisses supposer,
il y a cette solution :

    Dim Trouve As Range, dateCherche As Date
   
    dateCherche = Range("???").Value
    Set Trouve = Range("calendar").Find(dateCherche)
    If Not Trouve Is Nothing Then
        Trouve.Select
    Else
        MsgBox "la date " & dateCherche & " n'existe pas dans le calendrier"
    End If

salut
Messages postés
2
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
24 mars 2009

Merci beaucoup cnt.
J'avais commencé un truc bien plus complexe avec des boucles.
Du coup, pour analyser l'ensemble des lignes, j'ai adapté ta proposition comme cela, et ça marche !
Encore merci.

Dim Trouve As Range, dateCherche As Date, noligne As Integer



    noligne = 5
    While Cells(noligne, 1) <> ""
        dateCherche = Cells(noligne, 1)
        Set Trouve = Range("calendar").Find(dateCherche)
        If Not Trouve Is Nothing Then
            Trouve.Select
        Else
            MsgBox "La date " & dateCherche & " n'existe pas dans le calendrier"
        End If
    noligne = noligne + 1
    Wend