Recherche d'une date dans un ligne en fonction d'une date dans une colonne
naze0en0vba
Messages postés2Date d'inscriptionmercredi 18 mars 2009StatutMembreDernière intervention24 mars 2009
-
18 mars 2009 à 10:55
naze0en0vba
Messages postés2Date d'inscriptionmercredi 18 mars 2009StatutMembreDernière intervention24 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.
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 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
naze0en0vba
Messages postés2Date d'inscriptionmercredi 18 mars 2009StatutMembreDernière intervention24 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