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

naze0en0vba Messages postés 2 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 24 mars 2009 - 18 mars 2009 à 10:55
naze0en0vba Messages postés 2 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 24 mars 2009 - 24 mars 2009 à 08:17
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

cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
18 mars 2009 à 17:54
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
0
naze0en0vba Messages postés 2 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 24 mars 2009
24 mars 2009 à 08:17
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
0
Rejoignez-nous