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]
---------------