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.