Envoi fichier Excel par mail

5envoi-mail.xlsm (38.46 Ko)

Bonjour, la macro marche impeccable.

Le fichier est bien envoyé en format xlsm.

Mais certain destinataire refuse se genre de format pour la sécurité des entreprises.

Est ce possible que le fichier soit envoyé en format xls? Tout en gardant le fichier d'origine en xlsm.

Cdt

René

Bon, le plus simple serait de revoir la macro du fichier "Ordo semaine" pour qu'elle copie les infos dans un fichier xlsx et l'enregistre. Ensuite, la macro du fichier "envoi_mail.xlsm" se contentera alors de joindre le fichier xlsx préalablement enregistré par "Ordo semaine". Il faut juste conserver dans "envoi_mail.xlsm" le nom de l'entreprise pour envoyer aux bon destinataires.

Peux-tu modifier ou faire modifier la macro de "Ordo semaine", je me charge d'adapter celle de "envoi_mail.xlsm".

Je regarde pour te modifier l'ensemble ...

Je te renvoie les fichiers ...

Modifie la macro de "ordo_semaine" comme suit :

Option Explicit

Sub Envoyer()
'Macros par Claude Dubois pour "r.gouet" Excel-Pratique le 16/03/10
Dim Chemin$, Wbk$, Fichier1$, Fichier2$
Dim Lg%, Lg2%
    Chemin = ThisWorkbook.Path & "\"
    Wbk = ActiveWorkbook.Name

    Fichier1 = "ordo.xlsx" 'fichier à expédier
    Workbooks.Open (Chemin & Fichier1)
    Workbooks(Fichier1).Activate
    Workbooks(Wbk).Activate '(les 2 fichiers sont ouverts)

    Sheets("ordonnancement semaine").Activate
    Lg = WorksheetFunction.Match(Range("a2"), Range("a7:a1000"), 0) + 6
    Lg2 = Lg + 8
    Range(Range("a" & Lg), Range("au" & Lg2)).Copy
        With Workbooks(Fichier1).Sheets("Envoi")
            .Activate
            '.Paste .Range("a5")
            .Range("a5").PasteSpecial Paste:=xlFormats
            .Range("a5").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
            .Range("a5").PasteSpecial Paste:=xlPasteColumnWidths
            .Range("a5").Select
        End With
    Application.CutCopyMode = False

    Application.DisplayAlerts = False
    Workbooks(Fichier1).Close SaveChanges:=True
    Application.DisplayAlerts = True

    MsgBox "Les données ont été enregistrées sous ""ordo.xlsx"" !"

    Fichier2 = "Envoi_mail.xlsm"
    Workbooks.Open (Chemin & Fichier2)
    Workbooks(Fichier2).Activate
    Workbooks(Wbk).Activate '(les 2 fichiers sont ouverts)

    Sheets("ordonnancement semaine").Activate
    Range("a2").Copy
        With Workbooks(Fichier2).Sheets("Envoi")
            .Activate
            .Range("a5").PasteSpecial Paste:=xlFormats
            .Range("a5").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        End With
    Application.CutCopyMode = False

End Sub

J'ai distingué 2 fichiers : celui avec la macro qui envoie (envoi_mail.xlsm) et celui avec les données qui sera joint au mail (ordo.xlsx)

N'ouvre que le fichier ordo_semaine, les 2 autres seront ouverts automatiquement, et le fichier ordo.xlsx sera lui enregistré en fermé automatiquement.

4envoi-mail.xlsm (23.38 Ko)
6ordo.xlsx (26.03 Ko)
Rechercher des sujets similaires à "envoi fichier mail"