Bloquer un format Date VBA
webtomm
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
J'ai créé un userform dans lequel les personnes qui entreront leurs données devront rentrer une date. Je voudrais les obliger à écrire sous ce format: jj/mm/aaaa
Si ce n'est pas ce format je voudrais qu'un message apparaisse pour qu'ils respectent le format demandé.
Qqun pourrait il m'aider sur le code a écrire sous VBA?
Merci bcp pr votre aide !!!
J'ai créé un userform dans lequel les personnes qui entreront leurs données devront rentrer une date. Je voudrais les obliger à écrire sous ce format: jj/mm/aaaa
Si ce n'est pas ce format je voudrais qu'un message apparaisse pour qu'ils respectent le format demandé.
Qqun pourrait il m'aider sur le code a écrire sous VBA?
Merci bcp pr votre aide !!!
A voir également:
- Bloquer un format Date VBA
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Hp usb disk storage format tool - Télécharger - Stockage
- Format dat - Guide
- Format apfs - Guide
7 réponses
Bonjour,
à adapter à ton appli
à adapter à ton appli
If TextBox1.Value Like "##[/]##[/]####" Then Exit Sub
On Error GoTo Fin
Application.EnableEvents = False
MsgBox "Format non conforme."
TextBox1 = ""
Fin:
Application.EnableEvents = True
bonjour webtomm,
Si tu avais regardé le code de Michel que je salue, tu aurais écrit :
et cela aurait parfaitement fonctionné !
PS : obliger les utilisateurs à saisir 01/02/2009 alors que 1/2/9 abouti au même résultat, cela me parait passible de harcèlement informatique... ou d'incompétence.
Toujours zen
Si tu avais regardé le code de Michel que je salue, tu aurais écrit :
If not datedebutdamortissementcc.Value like "##[/]##[/]####" Then
et cela aurait parfaitement fonctionné !
PS : obliger les utilisateurs à saisir 01/02/2009 alors que 1/2/9 abouti au même résultat, cela me parait passible de harcèlement informatique... ou d'incompétence.
Toujours zen
Salut!!
Merci gbinforme,
mais je comprends pas pk ca ne fonctionne tjr pas...
j'ai écrit ce code:
If Not datedebutdamortissementcc.Value Like "##[/]##[/]####" Then Exit Sub
On Error GoTo Fin
Application.EnableEvents = False
MsgBox "Format non conforme."
datedebutdamortissementcc = ""
Fin:
Application.EnableEvents = True
et ca me met un blocage a ce niveau là:
Worksheets("Echéancier Capital Constant").Range("D12").Value = CDate(Me.datedebutdamortissementcc)
Je n'aurais pas un prob de format par hasard??
Merci pr votre aide!!
Merci gbinforme,
mais je comprends pas pk ca ne fonctionne tjr pas...
j'ai écrit ce code:
If Not datedebutdamortissementcc.Value Like "##[/]##[/]####" Then Exit Sub
On Error GoTo Fin
Application.EnableEvents = False
MsgBox "Format non conforme."
datedebutdamortissementcc = ""
Fin:
Application.EnableEvents = True
et ca me met un blocage a ce niveau là:
Worksheets("Echéancier Capital Constant").Range("D12").Value = CDate(Me.datedebutdamortissementcc)
Je n'aurais pas un prob de format par hasard??
Merci pr votre aide!!
bonjour,
essaies ce test
mais comme l'a dit fort justement gbinforme (bonjour, ca va ?), il est "sadique " de forcer l'utilisateur au format 12/09/2010 alors que 12/9/10 fonctionne très bien
essaies ce test
If Not datedebutdamortissementcc.Value Like "##[/]##[/]####" Then
MsgBox "Format non conforme."
datedebutdamortissementcc = ""
End If
mais comme l'a dit fort justement gbinforme (bonjour, ca va ?), il est "sadique " de forcer l'utilisateur au format 12/09/2010 alors que 12/9/10 fonctionne très bien
bonjour
Nous avons changé d'interlocuteur ?
C'est un peu n'importe quoi comme ce que tu écrits car maintenant tu mets le message d'erreur lorsque la saisie est bonne !
Forcément si la saisie est incorrecte, la valeur déclarée bonne est incorrecte...
Nous avons changé d'interlocuteur ?
C'est un peu n'importe quoi comme ce que tu écrits car maintenant tu mets le message d'erreur lorsque la saisie est bonne !
Forcément si la saisie est incorrecte, la valeur déclarée bonne est incorrecte...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
nan c'est tjr moi !
Merci j'ai essayé ton test mais a chaque fois le blocage vient de là:
Worksheets("Echéancier Capital Constant").Range("D12").Value = CDate(Me.datedebutdamortissementcc)
qd je transforme la ca valeur en format date...
je comrpends pas pk (il faut dire que je débute à peine...)
Je sais c'est un peu sadique mais ca va etre utilisé par bcp de monde et je veux etre sur qu'il rentre la date d'une certaine facon, av les /.... sinon tout le reste plante...
nan c'est tjr moi !
Merci j'ai essayé ton test mais a chaque fois le blocage vient de là:
Worksheets("Echéancier Capital Constant").Range("D12").Value = CDate(Me.datedebutdamortissementcc)
qd je transforme la ca valeur en format date...
je comrpends pas pk (il faut dire que je débute à peine...)
Je sais c'est un peu sadique mais ca va etre utilisé par bcp de monde et je veux etre sur qu'il rentre la date d'une certaine facon, av les /.... sinon tout le reste plante...
bonjour
je veux etre sur qu'il rentre la date d'une certaine facon, av les /.... sinon tout le reste plant
Depuis quand les "/" sont obligatoires dans une date excel ?
Que tu saisisses 2/6/10 ou 2-6-10 ou 02/06/2010 excel te fournira la bonne valeur.
Quand on débute il ne faut pas partir en prenant des prémices fausses. Que tu veuilles sécuriser la saisie c'est bien et nécessaire mais pour cela il suffit de vérifier que ce qui est saisi est une date sans obliger les utilisateurs (qui ne sont pas tous incultes et inaptes s'ils ne sont pas informaticiens) à utiliser un format qui ne présente aucun intérêt particulier. En prenant des initiatives formalistes inutiles c'est la meilleure façon des braquer les utilisateurs et ils risquent aussi, pour te faire voir qu'ils ne méritent pas de tels blocages, de te trouver beaucoup plus facilement les bugs que tu auras oublié de corriger et là c'est toi qui sera bien planté !
En facilitant le travail des utilisateurs, on améliore bien plus la vie de l'entreprise que lorsque l'on essaie de les brider par tous les moyens : il faut avoir un peu plus de psychologie ! Je peux t'écrire un livre si tu veux avec tous les apports que l'on peut obtenir des utilisateurs en les écoutant un tant soit peu.
Maintenant c'est toi qui décide et c'est toi qui subira les conséquences donc tu fais bien comme tu veux, Michel t'a donné la formule qui fonctionne parfaitement et nous n'avons aucune idée de la façon où tu arrives ensuite au positionnement d'une cellule : c'est sans doute là ton problème.
je veux etre sur qu'il rentre la date d'une certaine facon, av les /.... sinon tout le reste plant
Depuis quand les "/" sont obligatoires dans une date excel ?
Que tu saisisses 2/6/10 ou 2-6-10 ou 02/06/2010 excel te fournira la bonne valeur.
Quand on débute il ne faut pas partir en prenant des prémices fausses. Que tu veuilles sécuriser la saisie c'est bien et nécessaire mais pour cela il suffit de vérifier que ce qui est saisi est une date sans obliger les utilisateurs (qui ne sont pas tous incultes et inaptes s'ils ne sont pas informaticiens) à utiliser un format qui ne présente aucun intérêt particulier. En prenant des initiatives formalistes inutiles c'est la meilleure façon des braquer les utilisateurs et ils risquent aussi, pour te faire voir qu'ils ne méritent pas de tels blocages, de te trouver beaucoup plus facilement les bugs que tu auras oublié de corriger et là c'est toi qui sera bien planté !
En facilitant le travail des utilisateurs, on améliore bien plus la vie de l'entreprise que lorsque l'on essaie de les brider par tous les moyens : il faut avoir un peu plus de psychologie ! Je peux t'écrire un livre si tu veux avec tous les apports que l'on peut obtenir des utilisateurs en les écoutant un tant soit peu.
Maintenant c'est toi qui décide et c'est toi qui subira les conséquences donc tu fais bien comme tu veux, Michel t'a donné la formule qui fonctionne parfaitement et nous n'avons aucune idée de la façon où tu arrives ensuite au positionnement d'une cellule : c'est sans doute là ton problème.
Bonjour,
effectivement je ne savais pas que tu pouvais entrer la date sous différents formats. je ne vais dc pas la bloquer.
Merci pour ces infos en tout cas.
Et efefctivement je ne prétends pas connaitre et bcp pourront me donner des conseils sachant que j'ai ouvert VBE pour la premiere fois il y a deux semaines....
effectivement je ne savais pas que tu pouvais entrer la date sous différents formats. je ne vais dc pas la bloquer.
Merci pour ces infos en tout cas.
Et efefctivement je ne prétends pas connaitre et bcp pourront me donner des conseils sachant que j'ai ouvert VBE pour la premiere fois il y a deux semaines....
bin oui, mais c'est un peu le B...., ce nouveau forum avec 2 options de réponses... si je te répondais, ce n'était pas dans l'ordre chronologique et je répond dans l'ordre chronologique, je ne répond pas à la personne que je veux
Et comme il ne sert à rien de faire une remarque ou suggestion sur ce site...
Et comme il ne sert à rien de faire une remarque ou suggestion sur ce site...
pour l'instant je mets ca comme ceci:
If datedebutdamortissementcc.Value <> "##[/]##[/]####" Then
MsgBox "Vous devez entrer une date de début d'amortissement conforme au format indiqué"
Me.datedebutdamortissementcc.SetFocus
Exit Sub
End If
J'ai essayé av ton code mais je n'arrive pas à l'écrire correctement....