Programmation vba

Résolu/Fermé
seboui Messages postés 1 Date d'inscription mercredi 14 août 2013 Statut Membre Dernière intervention 14 août 2013 - 14 août 2013 à 10:30
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 16 août 2013 à 18:59
bonjour, je dois réaliser du codage vba pour un travail informatique mais je ne sais pas comment définir les variable pour qu'elles soient prisent en compte.

Comment faire pour que mes champs "datefindelocation" et "datedebutdelocation" soit mes valeurs utilisées dans la formule?

Sub ContratDeLocation()
'
' ContratDeLocation Macro
'
' Touche de raccourci du clavier: Ctrl+z
'

Dim DateDebutDeLocation As Date
Dim DateFinDeLocation As Date
DateFinDeLocation = ?
DateDebutDeLocation= ?

ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = InputBox("Entrez la date du début de la location", "Date de début de location")
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = InputBox("Entrez la date de fin de location", "Date de fin de location")

If (DateFinDeLocation - DateDebutDeLocation) <= 1 Then
ActiveCell.Offset(0, 1).Value = "45euro"
ElseIf (DateFinDeLocation - DateDebutDeLocation) >= 2 And (DateFinDeLocation - DateDebutDeLocation) <= 3 Then
ActiveCell.Offset(0, 1).Value = "40euro par jour"
ElseIf (DateFinDeLocation - DateDebutDeLocation) >= 4 And (DateFinDeLocation - DateDebutDeLocation) <= 6 Then
ActiveCell.Offset(0, 1).Value = "35euro par jour"
Else: ActiveCell.Offset(0, 1).Value = "25euro par jour"
End If
End Sub

1 réponse

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
14 août 2013 à 13:26
coucou,

rempalce ton code par celui-ci :

Sub ContratDeLocation()
'
' ContratDeLocation Macro
'
' Touche de raccourci du clavier: Ctrl+z
'

Dim DateDebutDeLocation As Date
Dim DateFinDeLocation As Date


ActiveCell.Offset(0, 1).Select
DateDebutDeLocation = InputBox("Entrez la date du début de la location (sous le format jj/mm/aaaa)", "Date de début de location")
Do While Not IsDate(DateDebutDeLocation)
a = MsgBox("La valeur renseignée n'est pas une date !", vbOKOnly, "Erreur de saisie")
DateDebutDeLocation = InputBox("Entrez la date du début de la location", "Date de début de location")
Loop
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = DateDebutDeLocation
ActiveCell.Offset(0, 1).Select
DateFinDeLocation = InputBox("Entrez la date de fin de location (sous le format jj/mm/aaaa)", "Date de fin de location")
Do While Not IsDate(DateFinDeLocation)
a = MsgBox("La valeur renseignée n'est pas une date !", vbOKOnly, "Erreur de saisie")
DateFinDeLocation = InputBox("Entrez la date de fin de location", "Date de début de location")
Loop

ActiveCell.Offset(0, 1).Select
ActiveCell.Value = DateFinDeLocation

If (DateFinDeLocation - DateDebutDeLocation) <= 1 Then
ActiveCell.Offset(0, 1).Value = "45euro"
ElseIf (DateFinDeLocation - DateDebutDeLocation) >= 2 And (DateFinDeLocation - DateDebutDeLocation) <= 3 Then
ActiveCell.Offset(0, 1).Value = "40euro par jour"
ElseIf (DateFinDeLocation - DateDebutDeLocation) >= 4 And (DateFinDeLocation - DateDebutDeLocation) <= 6 Then
ActiveCell.Offset(0, 1).Value = "35euro par jour"
Else: ActiveCell.Offset(0, 1).Value = "25euro par jour"
End If
End Sub
1
merci beaucoup mélanie :)
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
16 août 2013 à 18:59
mets le en resolu si c'est bon stp
0