gruflome
Messages postés13Date d'inscriptionlundi 23 mai 2016StatutMembreDernière intervention18 décembre 2017
-
22 nov. 2017 à 05:51
gruflome
Messages postés13Date d'inscriptionlundi 23 mai 2016StatutMembreDernière intervention18 décembre 2017
-
6 déc. 2017 à 13:22
Bonjour, je vous remercie d'avance pour toute l'aide que vous donnerai .
je prie Mr Whismeril d'excuser mon manque de délicatesse.
La procédure me permet de faire des contrôle sur les dates saisies
donc je récupère la saisie dans un textbox que converti en format date et je l'affecte à une autre variable avant d'utiliser la fonction DateDiff() pour le calcul de l'âge. mais je reçois toujours une erreur de compilation liée au type et se positionne sur la ligne "grid = DateDiff("yyyy", day, today)"
Private Sub Txtdatebornphy_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'exemple pour format xx/xx/xxxx Dim valeur As Byte Dim day As Date
Dim grid As Integer Dim today As String
Me.Txtdatebornphy.MaxLength = 10 'nb caracteres maxi dans textbo
valeur = Len(Me.Txtdatebornphy) If valeur = 2 Or valeur = 5 Then Me.Txtdatebornphy = Me.Txtdatebornphy & "/" 'formatage du textbox en date Me.Txtdatebornphy = Format(Me.Txtdatebornphy.Value, "dddd d mmmm yyyy") 'affectation des valeurs aux variables day = Me.Txtdatebornphy today = Date 'fonction de calcul de l'age grid = DateDiff("yyyy", day, today)
'condition de contrôle de l'age If Not grid >= 7 Then MsgBox "Donnée erronée", vbOKOnly + vbCritical, "Erreur" Me.Txtdatebornphy = "" Else If grid <= 18 Then Me.PnlréférencementParrain.Enabled = True Me.PnlReferencementClient.Enabled = True End If End If
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018220 Modifié le 22 nov. 2017 à 06:58
Bonjour
Déjà :
Il est évident que
Format(Me.Txtdatebornphy.Value, "dddd d mmmm yyyy")
(du texte, donc)
ne saurait être passé comme paramètre de date à la fonction DateDiff !
Même remarque pour ta variable today !
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
gruflome
Messages postés13Date d'inscriptionlundi 23 mai 2016StatutMembreDernière intervention18 décembre 20171 22 nov. 2017 à 07:14
Merci. j'ai apporté une modification au code et le problème persiste "incompatibilité de type"
Me.Txtdatebornphy = Format(Me.Txtdatebornphy.Value, "DD/MM/YYYY") 'affectation des valeurs aux variables day = Me.Txtdatebornphy today = Date today = Format(today, "DD/MM/YYYY") 'fonction de calcul de l'age grid = DateDiff("yyyy", day, today)
Whismeril
Messages postés18298Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2023622 22 nov. 2017 à 08:24
Bonjour à tous les 2.
Gruflome, comme Uc te l’indique, DateDiff a besoin de variables de type Date en entrée.
Il suffit de lire l’aide en ligne de la fonction Format pour voir qu’elle retourne une String.
Une String, c’est du texte, « mercredi 22 novembre » c’est du texte qui représente graphiquement la date d’aujourd’hui. Mais un truc écrit sur un bout de papier ou un forum n’est pas la date d’aujourd’hui. La date c’est le temps qui passe.
Faisons un parallèle avec la vraie vie, si on prend une photographie de toi, on aura une représentation graphique de toi, ça va te ressembler à s’y méprendre, mais ça n’est pas toi.
Dans ton cas, il faut que tu convertisses le texte issu de ta textBox en date (CDate je crois en vba) et que tu laisse Date comme il est.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018220 Modifié le 22 nov. 2017 à 07:42
Tu ne sais manifestement pas lire ce qui t'a été exposé !
Si tu en es encore à ne pas savoir ce que sont les variables et leur type, tu as tout à apprendre depuis le tout-début (les rudiments).
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018220 22 nov. 2017 à 08:34
Bonjour Whismeril,
Il y a plus gênant encore, mais il est trop tôt (compte tenu des bases encore absentes) pour en parler.
Si l'âge d'une personne n'était qu'une différence entre deux millésimes, cela se saurait ... (et celui né un 31 décembre aurait déjà un an dès le lendemain ...) !
Whismeril
Messages postés18298Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2023622 22 nov. 2017 à 08:58