Soyez le premier à donner votre avis sur cette source.
Snippet vu 10 317 fois - Téléchargée 35 fois
Sub ctrl_date(ByRef date_jjmmaaaa As String) 'les termes entre parenthèses signifient ke la procédure demandera 1 argument, 'qui sera interprété comme une string 'on verifie que l'argument n'est pas nul If date_jjmmaaaa <> "" Then 'si on ne trouve pas le caractère / a la 3e et 6e position If Not (Mid(date_jjmmaaaa, 3, 1) = "/" And Mid(date_jjmmaaaa, 6, 1) = "/") Then 'msgbox precisant le format necessaire MsgBox "Date invalide" & vbCrLf & "La date doit avoir le format JJ/MM/AAAA" & vbCrLf & "Exemple: 07/02/2001", vbApplicationModal + vbInformation, "Erreur" Else If Not (CInt(Mid(date_jjmmaaaa, 7)) > Year(Now) Or CInt(Mid(date_jjmmaaaa, 7)) < 1800) Then 'selon le mois... Select Case Mid(date_jjmmaaaa, 4, 2) 'si jan ou mars ou mai ou juillet ou aout ou oct ou dec Case "01", "03", "05", "07", "08", "10", "12" 'alors si le jour est inferieur ou egal a 31, quitter la procédure If CInt(Mid(date_jjmmaaaa, 1, 2)) <= 31 Then Exit Sub 'si avril juin septembre ou novembre... Case "04", "06", "09", "11" 'alors si plus le jour est inferieur ou egal a 30, quitter la procedure If CInt(Mid(date_jjmmaaaa, 1, 2)) <= 30 Then Exit Sub 'si mois de FEVRIER ! Case "02" 'on verifie si l'année est bisextile (elle est bisextile si divisée par 4 le resultat est entier... 'donc on compare le resultat entier de la division au resultat de la division.. 'si c'est le meme, alors le resultat est entier ;) If Int(Mid(date_jjmmaaaa, 7) / 4) = Mid(date_jjmmaaaa, 7) / 4 Then 'on verifie ensuite le n° de jours, si il est conforme a la limite de 29 ou 28 If CInt(Mid(date_jjmmaaaa, 1, 2)) <= 29 Then Exit Sub Else If CInt(Mid(date_jjmmaaaa, 1, 2)) <= 28 Then Exit Sub End If End Select 'si on n'a pas quitté la procédure c'est qu'il y a une erreur donc afficher une msgbox d'erreur MsgBox "Date invalide" & vbCrLf & "La date doit avoir le format JJ/MM/AAAA" & vbCrLf & "Exemple: 07/02/2001", vbApplicationModal + vbInformation, "Erreur" Else MsgBox "Date invalide" & vbCrLf & "La date doit avoir le format JJ/MM/AAAA" & vbCrLf & "Exemple: 07/02/2001", vbApplicationModal + vbInformation, "Erreur" End If End If End If End Sub
maDate = date_jjmmaaaa
If not IsDate(maDate) then
.../...
end if
Mais bon 6/10 pour l'explication d'une procédure avec passage de paramètre
Bon code
si le format n'est pas correct (JJ/MM/AAAA) alors une msgbox d'erreur interviendra
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.