Fragmenter un fichier Excel et les préparer en mail
Bonjour,
j'aurais besoin svp de votre savoir
Cela fait plusieurs semaines que je cherche une solution mais étant vraiment novice en macro j'ai beaucoup de mal à avancer. Voici Ce que je souhaiterais réaliser.
Une macro qui me permet de diviser mon fichier excel ci joint en fonction d'un critère en plusieurs fichier .XLS
Je souhaiterais que la division de mon fichier se réalise selon le critère "Supplier name "
en colonne B . Soit un fichier par fournisseur identique à la forme du fichier initial. dont le nom du fichier serait idéalement (nom du fournisseur et date du jour) .
et je veux bien que le macro prépare et affiche les mails pour envoi svp
J'espère avoir été assez clair dans mon explication et j'espère vraiment que vous pourrez me donner un petit coup de main .
Merci par avance pour votre aide
Salut Afef, il manque quelques informations essentielles dans ta demande, notamment si tu utilises Outlook comme client pour l'envoi des emails, si tu veux que les fichiers individuels soient joints aux emails, si chaque fichier doit être envoyé à un destinataire différent, où se trouvent les adresses email, où les fichiers doivent être archivés, et s'ils doivent être conservés après l'envoi.
Cordialement
Salut Sequoyah ,
Merci pour ton retour rapide !
oui j'utilise Outlook pour l'envoie des emails .
oui je veux que les fichier fragmentées soient joints aux emails
et oui chaque fichier doit être envoyé à un destinataire différent .
j'ai une liste des adresses mails , mais je peux les saisir manuellement après la préparation de l'email .
si les mails sont envoyée j'aurais une copie enregistrée automatiquement dans ma boite mail normalement n'est ce pas ?
bon j'ai télécharger une macro de ce forum , il fragmente bien le fichier mais j'ai des pbm lors de l'envoie des mails .
Ci joint le macro
Merci d'avance !!
Bonjour Afef,
voici ma proposition, je te conseille de tester le code avec une version réduite de ton fichier
Sub mailAfef2()
'https://forum.excel-pratique.com/excel/fragmenter-un-fichier-excel-et-les-preparer-en-mail-196268
Dim targetWorkbook As Workbook
Dim objFSO As Object
Dim varTempFolder As Variant, v As Variant
Dim OutApp As Object, OutMail As Object, rng As Range, i As Long
Dim AttFile As String
v = Range("A2").CurrentRegion.Value
Set OutApp = CreateObject("Outlook.Application")
Application.ScreenUpdating = False
Set objFSO = CreateObject("Scripting.FileSystemObject")
varTempFolder = objFSO.GetSpecialFolder(2).Path & "\Temp " & Format(Now, "dd-mm-yyyy- hh-mm-ss")
objFSO.CreateFolder (varTempFolder)
With CreateObject("scripting.dictionary")
For i = 2 To UBound(v)
If Not .exists(v(i, 2)) Then
.Add v(i, 2), Nothing
With ActiveSheet
.Range("A1").AutoFilter 2, v(i, 2)
Set rng = .AutoFilter.Range
Set targetWorkbook = Workbooks.Add
.UsedRange.SpecialCells(xlCellTypeVisible).Copy targetWorkbook.Worksheets(Sheets.Count).Range("A1")
AttFile = v(i, 2) & "- " & Format(Now, "dd-mm-yyyy") & ".xlsx"
With targetWorkbook
.ActiveSheet.Columns.AutoFit
.SaveAs varTempFolder & "\" & AttFile
.Close
End With
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = ""
.Subject = "mon sujet" '<<==== A' adapter
.HTMLBody = "test" '<<==== A' adapter
.Attachments.Add varTempFolder & "\" & AttFile
.Display
' .Send
End With
End With
End If
Next i
End With
Range("A1").AutoFilter
With objFSO
.deletefile varTempFolder & "\*.*", True
.DeleteFolder varTempFolder
End With
Application.ScreenUpdating = True
End Sub
