Bonjour,
j'essaie de mettre en ouvre cela afin d'empêcher la saisie de date le samedi
et le dimanche dans un textbox,
cela ne fonctionne pas
Une aide s'il vous plait ?
Merci et bonne journée
Arnaud
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value <> "" Then
Mavar = CDate(TextBox1.Value)
If Application.WorksheetFunction.Weekday(Mavar) = 6 Or _
Application.WorksheetFunction.Weekday(Mavar) = 7 Then
If Application.WorksheetFunction.Weekday(Mavar) = 6 Then
MsgBox "Vous avez saisi une date tombant le samedi", _
vbExclamation, " Erreur date !"
TextBox1 = ""
TextBox1.SetFocus
Exit Sub
End If
If Application.WorksheetFunction.Weekday(Mavar) = 7 Then
MsgBox "Vous avez saisi une date tombant le dimanche", _
vbExclamation, " Erreur date !"
TextBox1 = ""
TextBox1.SetFocus
Exit Sub
End If
End If
End If
End Sub
tu peux aussi choisir le paramètre 3 auquel ca, Lundi vaut 0 et Samedi 5 pour les jours de la semaine.
bonjour,
c'est parce que Wekkday accepte 2 paramètres dont le 2eme donne la possibilité de choisir si le 1er jour de la semaine est un Dimanche ou un Lundi
ici Now() renvoie le jour d'aujourd'hui à savoir 16/07/05
Application.WorksheetFunction.Weekday(Now(),1) renverra la valeur 7 Application.WorksheetFunction.Weekday(Now(),2) renverra la valeur 6
C'est à toi de choisir si tu veux obtenir 7 pour un Samedi ou 6 pour un Samedi. Par défaut, il s'agit de la notation Américaine et en conséquence VBA interprète que le paramètre est 1.
A+
Je te remercie abcd le pb est que les dates sont bizarrement décalées d'un jour si je saisi 16/07/05, cela me donne le dimanche ? Arnaud
"abcd" a écrit dans le message de news:
petit cours:
le Cancel est transmis ByVal dans la déclaration de la procédure cela signifie que tu peux le changer et que la valeur sera transmise au code appelant: ce Cancel est fait pour te donner la possibilité d'annuler l'action en cours, on le retrouve sur quelques autres événements en VBA
tu peux aussi choisir le paramètre 3 auquel ca, Lundi vaut 0 et Samedi 5
pour les jours de la semaine.
bonjour,
c'est parce que Wekkday accepte 2 paramètres dont le 2eme donne la
possibilité de choisir si le 1er jour de la semaine est un Dimanche ou
un Lundi
ici Now() renvoie le jour d'aujourd'hui à savoir 16/07/05
Application.WorksheetFunction.Weekday(Now(),1) renverra la valeur 7
Application.WorksheetFunction.Weekday(Now(),2) renverra la valeur 6
C'est à toi de choisir si tu veux obtenir 7 pour un Samedi ou 6 pour un
Samedi.
Par défaut, il s'agit de la notation Américaine et en conséquence VBA
interprète que le paramètre est 1.
A+
Je te remercie abcd
le pb est que les dates sont bizarrement décalées d'un jour
si je saisi 16/07/05, cela me donne le dimanche ?
Arnaud
"abcd" <temp.nospamdc2@gmail.com> a écrit dans le message de news:
ees5ENgiFHA.1372@TK2MSFTNGP10.phx.gbl...
petit cours:
le Cancel est transmis ByVal dans la déclaration de la procédure
cela signifie que tu peux le changer et que la valeur sera transmise
au code appelant: ce Cancel est fait pour te donner la possibilité
d'annuler l'action en cours, on le retrouve sur quelques autres
événements en VBA
tu peux aussi choisir le paramètre 3 auquel ca, Lundi vaut 0 et Samedi 5 pour les jours de la semaine.
bonjour,
c'est parce que Wekkday accepte 2 paramètres dont le 2eme donne la possibilité de choisir si le 1er jour de la semaine est un Dimanche ou un Lundi
ici Now() renvoie le jour d'aujourd'hui à savoir 16/07/05
Application.WorksheetFunction.Weekday(Now(),1) renverra la valeur 7 Application.WorksheetFunction.Weekday(Now(),2) renverra la valeur 6
C'est à toi de choisir si tu veux obtenir 7 pour un Samedi ou 6 pour un Samedi. Par défaut, il s'agit de la notation Américaine et en conséquence VBA interprète que le paramètre est 1.
A+
Je te remercie abcd le pb est que les dates sont bizarrement décalées d'un jour si je saisi 16/07/05, cela me donne le dimanche ? Arnaud
"abcd" a écrit dans le message de news:
petit cours:
le Cancel est transmis ByVal dans la déclaration de la procédure cela signifie que tu peux le changer et que la valeur sera transmise au code appelant: ce Cancel est fait pour te donner la possibilité d'annuler l'action en cours, on le retrouve sur quelques autres événements en VBA
Arnaud LECLEMENT
Merci beaucoup abcd ainsi que AnonymousA Je vais adapter, j'ai bien compris la leçon ;-) Merci et bonne soirée Arnaud
"abcd" a écrit dans le message de news: % on n'est pas dans un module, l'appel se fait dans l'autre sens, mais tu as raison, habituellement, ByVal signifie qu'on ne transmet vers la procédure que la valeur, pas la référence.
ici il y a aussi un MSForms.ReturnBoolean et ce paramètre n'est pas envoyé vers notre procédure mais (je crois, et là c'est peut-être moi qui modélise mal) est envoyé vers le UserForm...
Merci beaucoup abcd ainsi que AnonymousA
Je vais adapter, j'ai bien compris la leçon ;-)
Merci et bonne soirée
Arnaud
"abcd" <temp.nospamdc2@gmail.com> a écrit dans le message de news:
%23Aqy9lgiFHA.2852@TK2MSFTNGP14.phx.gbl...
on n'est pas dans un module, l'appel se fait dans l'autre sens, mais tu
as raison, habituellement, ByVal signifie qu'on ne transmet vers la
procédure que la valeur, pas la référence.
ici il y a aussi un MSForms.ReturnBoolean et ce paramètre n'est pas
envoyé vers notre procédure mais (je crois, et là c'est peut-être moi
qui modélise mal) est envoyé vers le UserForm...
Merci beaucoup abcd ainsi que AnonymousA Je vais adapter, j'ai bien compris la leçon ;-) Merci et bonne soirée Arnaud
"abcd" a écrit dans le message de news: % on n'est pas dans un module, l'appel se fait dans l'autre sens, mais tu as raison, habituellement, ByVal signifie qu'on ne transmet vers la procédure que la valeur, pas la référence.
ici il y a aussi un MSForms.ReturnBoolean et ce paramètre n'est pas envoyé vers notre procédure mais (je crois, et là c'est peut-être moi qui modélise mal) est envoyé vers le UserForm...