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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| Public Sub essai_mail()
Dim Tablo()
Dim n As Byte
Dim c As Range
Dim derncel As Range
Dim nblign As Integer, nbcol As Integer
'O enregistrement au départ
n = 0
'Les dates figurent en colonne C
'Il y a 7 lignes à tester
For Each c In ThisWorkbook.Sheets(1).Range("C2:C7")
With c
'Test : date est inférieure à maintenant
If .Value < Now Then
'Si oui, alors un enregistrement de plus à garder pour le fichier final
n = n + 1
'On redimensionne la 2ème dimension du tableau pour ajouter un enregistrement
'Les enregistrements vont s'ajouter en colonnes, c'est à dire de gauche à droite
ReDim Preserve Tablo(1 To 3, 1 To n)
'On alimente les 3 données correspondantes, dont la date
For i = 1 To 3
Tablo(i, n) = .Offset(0, i - 3)
Next i
End If
End With
Next c
'Nombre de colonnes
nbcol = UBound(Tablo, 1)
'Nombre de lignes
nblign = UBound(Tablo, 2)
'Alimentation de la feuille 2 en transposant les colonnes avec les lignes
With ThisWorkbook.Sheets(2)
Set derncell = .Range("A1").Offset(nblign - 1, nbcol - 1)
.Range(.Range("A1"), derncell).Value = WorksheetFunction.Transpose(Tablo)
'Création du nouveau classeur à partir de la feuille de destination (n°2)
'comportant tous les enregistrements à date dépassée
'et qui sera joint au mail global
.Copy
End With
Set derncell = Nothing
leclasseur = "lechemincomplet du classeur.xls"
With ActiveWorkbook
.SaveAs Filename:=leclasseur
.Close
End With
'--------- Destinataires ---------
L_dest = ""
'Alimentation de la liste des destinataires
For i = 1 To UBound(Tablo, 2)
'Les adresses mail figurent dans la 1ère colonne
'Donc le premier indice de la vaiable Tablo est 1
L_dest = L_dest & Tablo(1, i) & ";"
Next i
'Contrôle
Debug.Print L_dest
'On vide le tableau
Erase Tablo
Call Envoi_Mail
End Sub |
Partager