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

16test.xlsx (34.74 Ko)

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 !!

voici le message d'erreur qui s'affiche

capture capture 2

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
Rechercher des sujets similaires à "fragmenter fichier preparer mail"