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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  visual basic : comment mieux gérer les dates dans mon prog ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

visual basic : comment mieux gérer les dates dans mon prog ???

n°142872
lordankou
Posté le 22-05-2002 à 23:09:25  profilanswer
 

bon voilà ma copine a une macro à faire sous excel pour calculer le prix d'une visite d'un monument. pour celà on a une baisse saison et une haute saison. la durée du trajet dépend de la saison.  
la durée de la visite est fixe et est de 1h30.
le temps total de la visite comprend la durée du visite et du trajet
le cout du guide est de 100fr/h
J'ai pondu le prog suivant. ça marche mais bon je suis pas trop content au niveau des types dates et tout ça. j'ai chercher sur des bouquins et j'ai pas trop trouvé (en plus ça fait plus d'un an que j'ai pas touché à du visual basic ce que je regrette pas du tout d'ailleurs car c vraiment un langage pourri !). bon bref voilà mon prog :  
 
 
Sub waza() ' début de la procédure
 
'-----------------------------
'- déclaration des variables -
'-----------------------------
 
Dim début_haute_saison As Date ' déclaration d'une variable de type date représentant le début de la haute saison
Dim fin_haute_saison As Date ' déclaration d'une variable de type date représentant la fin de la haute saison
Dim durée_haute_saison As Integer ' déclaration d'une variable de type entier représentant la durée du trajet en nombre de minutes en haute saison
Dim durée_basse_saison As Integer ' déclaration d'une variable de type entier représentant la durée du trajet en nombre de minutes en basse saison
 
'-----------------------------
'- initialisation des variables -
'-----------------------------
 
début_haute_saison = #7/1/2002#  ' début de la haute saison mm/jj/yyyy
fin_haute_saison = #9/1/2002# ' fin de la haute saison mm/jj/yyyy
durée_haute_saison = 10 ' en minutes
durée_basse_saison = 5 ' en minutes
 
' B1 = date de la sortie
' B3 = km à parcourir
' B9 = temps de transport en MINUTES
' B11 = temps de la visite en hh:mm
' B13 = temps total en minute
' B15 = cout du guide
' B17 = cout du guide en euros !!!!!!!!!!! ? bah oui on compte plus en franc !!! non mais c GEA....
 
'-----------------------------
'- début des actions -
'-----------------------------
 
If (Month(début_haute_saison) < Month((Range("B1" )))) Then ' si la date de la visite est supérieure au début de la haute saison on continue
 If Month((Range("B1" ))) < Month(fin_haute_saison) Then ' si la date de la visite est inférieure à la fin de la haute saison alors on se trouve dans la haute saison (d'après la condition précédente)
   Range("B9" ).Select ' on sélectionne la cellule où l'on va enregistrer la durée du trajet
   ActiveCell.Value = (durée_haute_saison * (Range("B3" ))) ' on calcul et on enregistre la durée du trajet
 Else ' dans ce cas la date se situe après la fin de la haute_saison
   Range("B9" ).Select ' on sélectionne la cellule où l'on va enregistrer la durée du trajet
   ActiveCell.Value = (durée_basse_saison * (Range("B3" ))) ' on calcul et on enregistre la durée du trajet
 End If
Else ' dans ce cas la date se situe avant le début de la haute_saison
 Range("B9" ).Select ' on sélectionne la cellule où l'on va enregistrer la durée du trajet
 ActiveCell.Value = (durée_basse_saison * (Range("B3" ))) ' on calcul et on enregistre la durée du trajet
End If
 
Range("B13" ).Select ' on selectionne la cellule pour le temps total en minute
ActiveCell.Value = Minute(Range("B11" )) + Hour(Range("B11" )) * 60 + Range("B9" ) ' B11 étant exprimé en hh:mm on prend d'abord les minutes grâce à minute(range("B11" )) puis on ajoute les heures transformées en minutes grâce à la fonction Hour(Range("B11" )) * 60 puis on ajoute le temps du trajet avec la fonction range("B9" )
 
Range("B15" ).Select ' on selectionne la cellule pour le cout du guide
ActiveCell.Value = (100 / 60) * Range("B13" ) ' on calcul le cout du guide par minute grâce à (100 / 60) puis on le multiplie par le temps total en minute (situé dans la cellule 13) grâce à la fonction Range("B13" )
 
End Sub ' fin de la procédure

 

[jfdsdjhfuetppo]--Message édité par lordankou le 22-05-2002 à 23:10:23--[/jfdsdjhfuetppo]


---------------

mood
Publicité
Posté le 22-05-2002 à 23:09:25  profilanswer
 

n°142945
Loom the G​loom
Even coders get the blues...
Posté le 23-05-2002 à 08:32:07  profilanswer
 

tu pourrais être plus précis ??
je comprends pas bien ton pb la...


---------------
Music|Market|Feed|Loom|DVD
n°142963
lordankou
Posté le 23-05-2002 à 09:24:41  profilanswer
 

bah euh le problème c que j'aurais voulu mettre en date les variables durée_haute_saison et durée_basse_saison qui sont pour l'instant en integer. le problème c que quand je mes en date il me mettra toujours sous la forme hh/mm/ss et il me mettra automatiquement  12h pour les heures. bon j'avais réussi à contourner ce problème en utilisant minute(durée_haute_saison) afin de retourner seulement les minutes mais quand je veux enregistrer ce résultat dans une cellule avec  
 
Range("B13" ).Select
ActiveCell.Value = (minute(durée_basse_saison) * (Range("B3" )))
 
il me calcul bien la durée du trajet mais dans la feuille excel il mettre les minutes pour des jours !  
ça veut donc dire que quand je retourne 10 min il me marque sur excel :
10/01/1899 00:00:00  
alors qu'il faudrait qu'il me marque 00:10:00 car je m'en fous royalement de la date !
j'ai beau modifier dans le format de la cellule pour spécifier ce que je veux il me change pas !!!!


---------------

n°142966
Loom the G​loom
Even coders get the blues...
Posté le 23-05-2002 à 09:30:26  profilanswer
 

pour les integer en variables, tu peux peut etre utiliser  
format(mydate, Format) , pour convertir la date en minutes ou ce que tu veux...
 
par contre pour ce qui est de excel, c pas normal qu'il ne te change pas les mn si tu changes le type de la cellule... A voir !


---------------
Music|Market|Feed|Loom|DVD
n°142973
lordankou
Posté le 23-05-2002 à 09:44:00  profilanswer
 

oui c vrai qu'il faudrait que j'utilise format mais bon ça devrait pas trop poser de prb ça (y'a qu'à trouver la doc et ça ira) mais c surtout excel qui me pose problème.  
faudra spécifier à la cellule que c bien des minutes qu'on rentre à partir de la macro mais bon là je vois pas !
franchement donné ça à des GEA faut pas déconner loool.
à la limite c presque plus dur que ce qu'on voit en Info mdrr  :pt1cable:


---------------

n°142975
Loom the G​loom
Even coders get the blues...
Posté le 23-05-2002 à 09:47:12  profilanswer
 

lordankou a écrit a écrit :

oui c vrai qu'il faudrait que j'utilise format mais bon ça devrait pas trop poser de prb ça (y'a qu'à trouver la doc et ça ira) mais c surtout excel qui me pose problème.  
faudra spécifier à la cellule que c bien des minutes qu'on rentre à partir de la macro mais bon là je vois pas !
franchement donné ça à des GEA faut pas déconner loool.
à la limite c presque plus dur que ce qu'on voit en Info mdrr  :pt1cable:  




 
pas trop non !  
pour excel j'en sais pas plus
ptet qu'il existe un truc du genre range(".." ).format ou qqchose comme ça ?...


---------------
Music|Market|Feed|Loom|DVD
n°142983
lordankou
Posté le 23-05-2002 à 09:57:07  profilanswer
 

bah j'ai regardé et j'ai pas trouvé justement. c pas délire les macros sous excel j'ai l'impression. ou alors c vraiment tordu ! remarque vu comment c tordu le vb ça serait pas étonnant  :o


---------------

n°142993
Loom the G​loom
Even coders get the blues...
Posté le 23-05-2002 à 10:07:54  profilanswer
 

lordankou a écrit a écrit :

bah j'ai regardé et j'ai pas trouvé justement. c pas délire les macros sous excel j'ai l'impression. ou alors c vraiment tordu ! remarque vu comment c tordu le vb ça serait pas étonnant  :o  




 
tu m'étonnes, c clair que c tordu
y'a un mois, j'avais un document à créer automatiquement sous excel à partir d'une base de données... j'en ai chié je te dis pas...  :lol:


---------------
Music|Market|Feed|Loom|DVD
n°143004
lordankou
Posté le 23-05-2002 à 10:14:57  profilanswer
 

ouais bah je crois que je vais pas chercher plus loin. après tout ça marche même si c pas super génial comme méthode mais bon là j'ai de l'assembleur et du c à faire donc faut que je bosse !


---------------

n°143013
Loom the G​loom
Even coders get the blues...
Posté le 23-05-2002 à 10:18:16  profilanswer
 

lordankou a écrit a écrit :

ouais bah je crois que je vais pas chercher plus loin. après tout ça marche même si c pas super génial comme méthode mais bon là j'ai de l'assembleur et du c à faire donc faut que je bosse !  




ok bon courage et a+  :p


---------------
Music|Market|Feed|Loom|DVD

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

  visual basic : comment mieux gérer les dates dans mon prog ???

 

Sujets relatifs
[ prog systeme Unix inside !] help !! mémoire partagée, je galère ![C] ouvrir un fichier en données pour un prog...
[VB / .NET] Gérer un tableau de stringEncore un probleme de dates en VB
[vb6]mettre une musique dans mon prog ![delphi] Les uses en delphi ? est ce que le prog pese plus ?
[HS] Comment polluer un autre forum de prog :))gerer des exceptions avec JavaScript
[prog internet] champs texte + checbox[Visual C++] Comment afficher un BMP ??
Plus de sujets relatifs à : visual basic : comment mieux gérer les dates dans mon prog ???


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