Programmation vba

Résolu
seboui Messages postés 1 Statut Membre -  
melanie1324 Messages postés 1561 Statut Membre -
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

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
    1. seboui
       
      merci beaucoup mélanie :)
      0
    2. melanie1324 Messages postés 1561 Statut Membre 156
       
      mets le en resolu si c'est bon stp
      0