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 33 34 35 36 37 38 39 40 41 42
| Private Sub Command1_Click()
Dim Tbl(5) As String
Tbl(0) = "2017/12/20 | 80"
Tbl(1) = "2017/12/21 | 80"
Tbl(2) = "2017/12/22 | 73"
Tbl(3) = "2017/12/23 | 91"
Tbl(4) = "2017/12/24 | 80"
Tbl(5) = "2017/12/25 | 73"
'Sejour du 20,21,24 à 80 $
'Sejour du 22,25 à 73 $
'Sejour du 23 à 91 $
Dim Dat As String, Prix As String
Dim T As Integer, U As Integer
'Dim DicO As New Dictionary ' S'il a été fait reference à Microsoft Scripting Runtime
Dim DicO As Object ' S'il n'est pas fait reference à Microsoft Scripting Runtime
Set DicO = CreateObject("Scripting.Dictionary") 'création du variable objet de type Dictionary
For T = 0 To UBound(Tbl)
Dat = Trim(Split(Tbl(T), "|", -1, vbTextCompare)(0))
Prix = Trim(Split(Tbl(T), "|", -1, vbTextCompare)(1))
If DicO.Exists(Prix) = False Then
DicO.Add Prix, Right(Dat, 2)
For U = T + 1 To UBound(Tbl)
If Trim(Split(Tbl(U), "|", -1, vbTextCompare)(1)) = Prix Then
DicO.Item(Prix) = DicO.Item(Prix) & ", " & Right(Trim(Split(Tbl(U), "|", -1, vbTextCompare)(0)), 2)
End If
Next U
End If
Next T
Dim MsG As String
Dim TblDate As Variant, TblPrix As Variant
TblDate = DicO.Items: TblPrix = DicO.Keys
DicO.RemoveAll: Set DicO = Nothing 'Purger le dictionnaire et libérer explicitement la mémoire
'Pour affichage
For T = 0 To UBound(TblPrix)
MsG = MsG & "Sejour du " & TblDate(T) & " à " & TblPrix(T) & "" & vbNewLine
Next T
MsgBox MsG, vbInformation, "Resultat"
End Sub |
Partager