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 43 44 45 46 47 48 49 50 51 52
|
Sub Test()
Dim Dico As Object
Dim Cle As Variant
Dim Plage As Range
Dim Cel As Range
Dim T As Variant
Dim Chaine1 As String
Dim Chaine2 As String
Dim I As Integer
Set Dico = CreateObject("Scripting.Dictionary")
'défini la plage sur la colonne A de la feuille active à partir de A1 (colonne des noms)
With ActiveSheet: Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With
'cocatène le Numéro d'équipement avec le montant séparés par un tiret bas et ensuite, sépare
'les enregistrements par une virgule
For Each Cel In Plage
Dico(Cel.Value) = Dico(Cel.Value) & Cel.Offset(, 1).Value & "_" & Cel.Offset(, 3).Value & ","
Next Cel
For Each Cle In Dico.Keys
'splite dans un tableau
T = Split(Dico(Cle), ",")
'construction des deux chaînes
Chaine1 = Cle & "," & vbCrLf & vbCrLf
Chaine2 = "Sauf erreur de notre part, vous nous êtes redevable " & IIf(UBound(T) > 1, "des sommes", "de la somme") & " ci-dessous :" & vbCrLf & vbCrLf
'extrait le numéro d'équipement et le montant et inscrit les enregistrement les uns sous les autres
For I = 0 To UBound(T) - 1
Chaine2 = Chaine2 & "pour le numéro d'équipement " & Split(T(I), "_")(0) & " d'un montant de " & Split(T(I), "_")(1) & vbCrLf
Next I
'finalise
Chaine1 = Chaine1 & Chaine2 & vbCrLf & "En l'attente de votre règlement, veuillez agréer, " & Cle & ", mes sincères salutations."
Chaine1 = Chaine1 & vbCrLf & vbCrLf & "ElMizuno41"
'ici, il faut envoyer les mails
MsgBox Chaine1
'vide pour le suivant
Chaine1 = "": Chaine2 = ""
Next Cle
End Sub |
Partager