Je suis tring pour ajouter x nombre de jours à une longue date avec une boîte pop-up.
Public Function AskForDeadlinePlus4() As String
Dim strUserResponse As String
strUserResponse = InputBox("Enter Validuntil Date: Add # of Days To Survey end date")
strUserResponse = FormatDateTime(strUserResponse + I2, vbLongDate)
ActiveSheet.Cells(2, 10).Value = strUserResponse 'the 2, 10 is the cell reference for J2 - row 2, column 10.
End Function
Date de fin de l'enquête dans la cellule I2.
Quand je lance ça, je suis fatigué (googler comment faire cela)
4 + I2
(où I2 = Friday, April 05, 2013
) >> Wednesday, January 03, 1900
bien sûr j'ai besoin de Tuesday, April 09, 2013
Merci
Avez-vous utilisé la fonction DateAdd
?
Sub DateExample()
Dim strUserResponse As String '## capture the user input'
Dim myDate As Date '## the date you want to add to'
Dim numDays As Double '## The number of days you want to add'
strUserResponse = InputBox("Enter Validuntil Date: Add # of Days To Survey end date")
numDays = InputBox("How many days to add?")
myDate = CDate(strUserResponse)
MsgBox DateAdd("d", numDays, myDate)
End Sub
Je pense que ce code est ce que vous utilisez après avoir utilisé la fonction DateAdd(<base e.g. Day = "D">, <number>, <date>)
:
Public Function AskForDeadlinePlus4() As String
Dim strUserResponse As Date, iNumber As Long, rResponse As Variant
AskForDeadlinePlus4 = "" 'set default value
iNumber = CLng([I2])
rResponse = InputBox("Enter Validuntil Date: Add " & iNumber & " Day(s) To Survey end date")
If rResponse = False Then
'no value entered
Exit Function
ElseIf Not IsDate(rResponse) Then
'no date entered
Exit Function
Else
'valid date entered
strUserResponse = DateAdd("D", iNumber, CDate(rResponse))
End If
AskForDeadlinePlus4 = FormatDateTime(strUserResponse, vbLongDate)
End Function
Quelques points cependant:
i = AskForDeadlinePlus4
est son utilisation;=AskForDeadlinePlus4
; etSi vous voulez utiliser dans VBA:
Sub GetInfo()
'the 2, 10 is the cell reference for J2 - row 2, column 10.
ActiveSheet.Cells(2, 10).Value = AskForDeadlinePlus4
End Sub
Au lieu d'utiliser DateAdd, qui nécessite davantage de frappe, vous pouvez également utiliser DateValue. Suivre le ferait.
DateValue(strUserResponse )+I2
Une autre solution consisterait à utiliser la fonction de conversion, CDate.
CDate(strUserResponse )+I2