1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Function GetRate(Cur As String, RateDate As Date) As Variant
Dim Formula As String
Formula = "=IFERROR(INDEX(t_Taux[Taux],MATCH(1,(t_Taux[Devise]=""{currency}"")*(t_Taux[Date]={date}),1)),""N/A"")"
Formula = Replace(Replace(Formula, "{currency}", Cur), "{date}", CDate(RateDate) * 1)
GetRate = Evaluate(Formula)
End Function
Sub SortRates()
With Range("t_taux").ListObject.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("t_taux[Devise]"), SortOn:=xlSortValues, Order:=xlAscending
.SortFields.Add Key:=Range("t_taux[Date]"), SortOn:=xlSortValues, Order:=xlAscending
.Apply
End With
End Sub
Sub CreateCurrenciesList()
If Not Range("t_Devises").ListObject.DataBodyRange Is Nothing Then Range("t_Devises").ListObject.DataBodyRange.Delete
Range("t_Taux[Devise]").Copy Destination:=Range("t_devises[devise]")
Range("t_devises").RemoveDuplicates 1
With Range("t_Devises").ListObject.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("t_Devises[devise]"), SortOn:=xlSortValues, Order:=xlAscending
.Apply
End With
End Sub
Function StringToDate(Value As String) As Date
If IsDate(Value) Then StringToDate = CDate(Value)
End Function |
Partager