Forcer le format d'une donnée

bonjour a tous ,

j'espère que vous allez bien alors je suis dans l'optique de rajouter un onglet recherche dans mon application pour chercher une commande selon les critères voulu comme par exemple la date de livraison donc pour cela j'ai forcer le format date pour les différentes textbox a l'aide de Cdate mais j'aimerais maintenant que lorsque qu'on ajoute ou modifie une commande mais que l'on n'inscrit pas une date cela écrit un message "veuillez inscrire une date" . Autre chose aussi je voudrais que pour les fournisseur les données téléphone et portable soit au format numéro de téléphone mais je ne connais pas la chose a rajouter .

Merci d'avance pour tout aide , Cordialement Nathan

Bonjour,

Je suis tes avancées de loin depuis un moment et tu as l'air d'être volontaire pour progresser. Et comme rien ne vaut la pratique, plutôt que de te le faire je vais te mettre sur la voie, si tu veux bien.

Pour ce qui est des dates, tu dois le savoir, ce sont des nombre sur excel. En vba, tu peux chercher sur ton moteur de recherche préféré du côté de Isnumeric.

Pour ce qui est des numéros de téléphone, tu pourras aller chercher du côté de Format(ta valeur, "0# ## ## ## ##")

Bon courage ^^

Salut joyeuxNoel !

Merci de m'aiguiller cela permet de progresser d'avantage , alors pour les numéros de téléphone c'est bon cela fonctionne quand au date j'ai essayer quelque chose comme cela :

If IsNumeric(Me.TxtBDateDA) Then
    ActiveCell.Offset(0, 7) = CDate(Me.TxtBDateDA)
    Else

    MsgBox "veuillez entrer une date valide "

    End If

cela fonctionne ca affiche le message mais la commande s'ajoute quand même sans la date non valide et possibilité de la modifier

Re,

Cool pour les numéros. Tu vois, c'est pas le plus compliqué.

Pour l'autre souci, je pense qu'il faut que tu fasses tous les tests avant de commencer à remplir ta BDD avec les données. Et si il rencontre une donnée non valide, alors il sort du programme et il active la textbox correspondante.

Un truc du genre :

If not IsNumeric(Me.TxtBDateDA) Then MsgBox "veuillez entrer une date valide " :Me.TxtBDateDA.setfocus :Exit sub

    If not blablabla then 
         If not blablablabla then

ici ton remplissage peut se faire, puisque tu remplis toutes les conditions.

Une proposition qui ne concerne que la 1ère date (TxtBDateDA) et le formulaire de commande. La même chose doit être faite pour les autres champs et la feuille de modif.

Bonjour Optimix.

Il me semble qu'avec ta solution, on peut quand même rentrer une date avec un seul slash, voire un peu n'importe quoi dans la cellule.

Salut Optimix, Re joyeuxNoel

c'est assez étrange joyeuxNoel quand j'essaye d'utiliser la ligne de code cela m'affiche le message" veuillez entrez une date valide " même si l'on inscrit une date valide

quand a optimix merci quand meme pour ta proposition

EDIT en fait il faut rentrer la date sans slash

Ou le passer en numérique lors de ton test 😉

on doit le passer en numérique avant le test ?

Peut-être

If not IsNumeric(cdbl(Me.TxtBDateDA) ) Then MsgBox "veuillez entrer une date valide " :Me.TxtBDateDA.setfocus :Exit sub

    If not blablabla then 
         If not blablablabla then

ici ton remplissage peut se faire, puisque tu remplis toutes les conditions.

ok donc si j'ai bien compris le cbdl sert a convertir mais je suis désolé mais je ne comprend pas quoi ajouter pour que cela fonctionne

En fait il manque même cdate()

genre :

If not IsNumeric(cdbl(cdate(Me.TxtBDateDA) )) Then MsgBox "veuillez entrer une date valide " :Me.TxtBDateDA.setfocus :Exit sub

Mais du coup, tu peux rentrer une fausse date.

Je pensais maîtriser mieux que ça, désolé

quand j'essaye d'utiliser la ligne de code cela m'affiche le message" veuillez entrez une date valide " même si l'on inscrit une date valide

C'est curieux, car on n'a le message que si la date de commande d'achat est laissée vide. Regarde le code.

Je viens d'essayer et ca a l'air de très bien fonctionné merci beaucoup pour ta patience!

tu entend quoi par fausse date ?

Tu peux rentrer par exemple 01/12/200. Et du coup ça lance quand même le programme, en laissant la cellule vide.

Un autre contrôle peut-être de vérifier que tu as bien rentré 10 caractères dans ta textbox (les 8 chiffres de la date et les 2 slash)

If not IsNumeric(cdbl(cdate(Me.TxtBDateDA) )) And len(Me.TxtBDateDA) = 10 Then MsgBox "veuillez entrer une date valide " :Me.TxtBDateDA.setfocus :Exit sub

Je ne sais pas s'il y a plus propre. Si des spécialistes passent dans le coin, ils pourront nous dire.

D'accord merci en attendant je vais me contenté de ta solution qui est fonctionnelle sauf si quelqu'un en effet a une solution pour faire plus cours en tout cas encore merci pour ton aide

bon au final avec la dernière ligne de code que tu a donner on peut quand même donner des fausses dates mais pas très grave je pense

Mince, c'est étrange mais effectivement, tu as raison.

Je ne peux malheureusement pas t'en dire plus. On vient d'arriver à mon niveau d'incompétence.

pas de soucis merci a vous quand meme

Rechercher des sujets similaires à "forcer format donnee"