Je travaille sur un script VBA dans Excel. Voici le code sur lequel je travaille.
Option Explicit
Sub MoveThingsAbout()
Worksheets("Sheet3").Cells.Clear
Worksheets("Sheet3").Range("A1").Value = "JOB"
Worksheets("Sheet3").Range("B1").Value = "STOCKCODE"
Worksheets("Sheet3").Range("C1").Value = "DATE"
Worksheets("Sheet3").Range("D1").Value = "QUANTITY TO MAKE"
Worksheets("Sheet3").Range("E1").Value = "QUANTITY MANUFACTURED"
Dim row As Integer
Dim fromdate As String
Dim stockCode As String
Dim todate As String
Dim innerRow As Integer
fromdate = ""
todate = ""
stockCode = ""
stockCode = Worksheets("Sheet2").Range("B2").Value
fromdate = Worksheets("Sheet2").Range("D2").Value
todate = Worksheets("Sheet2").Range("F2").Value
innerRow = 2
row = 2
Do While (Worksheets("Sheet1").Range("A" & innerRow).Value <> "")
innerdate = ""
innerStockCode = ""
innerdate = Worksheets("Sheet1").Range("L" & innerRow).value
innerStockCode = Worksheets("Sheet1").Range("G" & innerRow).Value
If (stockCode = innerStockCode And (innerdate >= fromdate And innerdate <= todate)) Then
Worksheets("Sheet3").Range("A" & row).Value = Worksheets("Sheet1").Range("A" & innerRow).Value
Worksheets("Sheet3").Range("B" & row).Value = Worksheets("Sheet1").Range("G" & innerRow).Value
Worksheets("Sheet3").Range("C" & row).Value = Worksheets("Sheet1").Range("L" & innerRow).Value
Worksheets("Sheet3").Range("D" & row).Value = Worksheets("Sheet1").Range("U" & innerRow).Value
Worksheets("Sheet3").Range("E" & row).Value = Worksheets("Sheet1").Range("V" & innerRow).Value
End If
innerRow = innerRow + 1
row = row + 1
Loop
End Sub
Dans ce code, j utilise une condition de comparaison de la date interne à fromdate et todate. Mais les dates de début et de fin sont définies par l'utilisateur. Ils sont au format string. Mais la date interne est dans un format personnalisé ("jj / mm / aaaa h: mm") car elle est extraite de SQL. Donc, je ne peux pas changer le format de la date interne. Par conséquent, je dois changer le format pour fromdate et todate, afin que la condition fonctionne correctement.
Est-il possible de prendre la valeur de chaîne donnée par l'utilisateur pour les dates de début et de fin et de la changer au format souhaité au niveau VBA? ou y a-t-il un autre moyen d'y parvenir?