Bloquer un format Date VBA

Fermé
webtomm - 1 juin 2010 à 10:52
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 3 juin 2010 à 17:59
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 !!!
A voir également:

7 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 juin 2010 à 12:28
Bonjour,

à 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
0
Merci beaucoup !!
0
en fait ca ne fonctionne pas.
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....
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 juin 2010 à 17:17
J'avais testé et ca fonctionnait.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 686
Modifié par gbinforme le 1/06/2010 à 22:25
bonjour webtomm,

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
0
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!!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
2 juin 2010 à 10:10
bonjour,

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
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 686
2 juin 2010 à 10:09
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...
0

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...
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 686
2 juin 2010 à 19:04
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.
0
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....
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
3 juin 2010 à 11:20
très bon commentaire de gbinforme: je t'accorde, cher gb, 1 vote +

:-)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 686
3 juin 2010 à 17:49
Merci Michel mais comme tu peux le voir cela crée un peu la panique dans l'affichage de cette discussion :
- ton message réponds maintenant à foo ou webtomm
- cet ajout qui voulait s'adresser à Michel est en fait pour foo

Si quelqu'un arrive à suivre la conversation il a toutes mes félicitations !
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
3 juin 2010 à 17:59
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...
0