Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
716 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  probleme avec champ date résolu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme avec champ date résolu

n°1360303
GillooZ
un reportage de filip loulou
Posté le 05-05-2006 à 11:34:17  profilanswer
 

j'aimerais tester des valeurs date car l'utilisateur doit selectionner un laps de tps et j'aimerai verifier si sa saisie est correct :  
par exemple la selection de 10606 en premier avec 240506 doit generer un message d'erreur
 
comment faire ?


Message édité par GillooZ le 09-05-2006 à 14:10:30
mood
Publicité
Posté le 05-05-2006 à 11:34:17  profilanswer
 

n°1360910
Bidgii
Posté le 06-05-2006 à 15:41:26  profilanswer
 

Ta question demanderait sans doute un peu plus de précision pour une réponse pertinente, en particulier sur le contexte dans lequel tu travailles.
 
Pour avancer néanmoins, tu devrais pouvoir utiliser les fonctions IsDate et DateValue
 
Par exemple :
IsDate("21 janvier 2006" ) revoie true : c'est bien une date
De même que IsDate("21/01/2006" )
Par contre IsDate("21012006" ) renvoie false (pas de séparateur valide de date).
Charge à toi d'ajouter des séparateurs si tu ne veux pas obliger ton utilisateur à les entrer, mais c'est dans ce cas un peu plus "touchy"  ;)  
 
Une fois que tu t'es assuré que la chaine entrée était bien une date, tu peux la convertir dans une variable de type Date.
 

Code :
  1. Dim maChaine As String
  2.     Dim maDate As Date
  3.    
  4.     If Not IsDate(maChaine) Then
  5.         MsgBox "Date saisie incorrecte"
  6.         Exit Sub
  7.     End If
  8.    
  9.     maDate = DateValue(maChaine)


 
Les variables de type date sont des nombres, le jour étant la partie entière, et l'heure la partie décimale.
Une fois converties en variables date, tu peux donc très aisément vérifier que la date de fin est bien postérieure à celle de début en faisant une simple comparaison sur les date, et calculer le laps de temps écoulé entre les deux par différence.
 
 

Code :
  1. Dim maDateInitiale As Date
  2.     Dim maDateFinale As Date
  3.    
  4.     maDateInitiale = DateValue("01/06/06" )
  5.     maDateFinale = DateValue("24/05/06" )
  6.    
  7.     If maDateFinale < maDateInitiale Then
  8.         MsgBox "La date finale doit être postérieure à la date initiale"
  9.         Exit Sub
  10.     End If
  11.  
  12.     MsgBox "Durée : " & (maDateFinale - maDateInitiale)

n°1362267
GillooZ
un reportage de filip loulou
Posté le 09-05-2006 à 12:17:46  profilanswer
 

maDateInitiale = DateValue(ListBox3.Value)    
maDateFinale = DateValue(ListBox4.Value)
 
quand je fais ca ca me dit incompatibilité de type avec la valeur de ma listbox als que les données insérées dedans sotn bien du type date  
les dates ke je prends par exemple sont : 18/05/2006 et 12/05/2006
 
j'aimerai k'il me genere un message d'erreur qd la date initiale est superieur a la date finale comme Bidgii l'as mis dans le post précedent  
:/

n°1362324
tegu
Posté le 09-05-2006 à 13:22:56  profilanswer
 

Gillooz, rassure moi, tu utilises un peu l'aide en ligne de VBA ?
Ça te permettrait de voir comment utilsier ces fonctions de manière correcte par exemple.
Ça te permettrait aussi de voir qu'il existe une fonction CDate() qui permet de convertir une valeur en date si le format est correct.

n°1362363
GillooZ
un reportage de filip loulou
Posté le 09-05-2006 à 13:56:53  profilanswer
 

als de 1  
sur le pc ou je programme g pas le net et sur le pc avec le net g pas excel
de 2
apres sur mon pc ou je programme j'ai pas l'aide sur excel et g pas de cd d'install
de 3
j'ai jamais codé en vba avant le debut du mois d'avril
de 4
les fonctions je pe pas les inventer ni savoir comment elles marchent
de 5  
si ca vous soule de m'aider vous pouvez le dire
de 6  
j'ai pas le temps de consulter tous les tutaux c pour ca que je m'adresse a vous directement

n°1362374
GillooZ
un reportage de filip loulou
Posté le 09-05-2006 à 14:09:15  profilanswer
 

j'ai résolu mon probleme merci

n°1362488
tegu
Posté le 09-05-2006 à 15:44:06  profilanswer
 

De 1, si ton PC où tu programmes a Excel, alors il y a une doc en ligne.
De 2, si tu dois programmer, assure toi d'avoir un environnement de travail qui permet de le faire, et si nécessaire dit à ton chef de t'en donner les moyens (dis lui de passer sur le forum que je l'engueule s'il faut :p)
De 3, justement il faudrait démarrer par le début et lire la doc le plus possible (même celle en ligne)
De 4, pas question d'inventer; on est tous passé par là, sauf que certaines fonctions de base sont très faciles à trouver pour peu que tu lises la doc
De 5, quand ça me saoule, je le dis, voire je passe mon chemin, mais là j'aimerais surtout que tu apprennes certaines choses sans lesquellestu vas droit dans le mur.
De 6, il va pourtant falloir prendre le temps car le forum ne pourra pas toujours avoir les réponses que tu veux. Et il arrive que ça soit nous qui lisions les tutaux à ta place pour te répondre, alors ça risque de pas durer.
 
Ceci dit persévère, ça va aller mieux.

n°1362493
GillooZ
un reportage de filip loulou
Posté le 09-05-2006 à 15:46:42  profilanswer
 

je sais bien mais sur le pc ou je programme, l'aide bug qd je la lance g aucune reponse pour n'importe quel champ :/
apres pr le reste je vais arreter de me plaindre mais j'avance :) (lentement certes mais ca progresse ^^)
merci de repondre :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  probleme avec champ date résolu

 

Sujets relatifs
Problème include et affichage d'imageprobleme à l'édition d'un TStringGrid
problème requète[résolu] php.ini
Extraire le jour d'une date MySQLproblème avec la fonction isset()
Probleme image "fixed"[RESOLU][MYSQL] Importer une base de données
[Problème] Javascript et script SH[RESOLU] JDOM et nom d'une balise
Plus de sujets relatifs à : probleme avec champ date résolu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR