Bonjour
J'ai une erreur dans ce code .. mais je ne comprends pas pourquoi
Pouvez vous m'aider ? J'ai mis en gras, là où le code bug.
Merci
cheminFichier = Environ("TEMP") & "\" & "Extrait_" & ThisWorkbook.Name
wbTemp.SaveAs cheminFichier
J'ai une erreur dans ce code .. mais je ne comprends pas pourquoi
Pouvez vous m'aider ? J'ai mis en gras, là où le code bug.
Merci
cheminFichier = Environ("TEMP") & "\" & "Extrait_" & ThisWorkbook.Name
wbTemp.SaveAs cheminFichier
VB:
Sub EnvoyerMail()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim cheminFichier As String
Dim nomFichier As String
Dim adresseEmail1 As String
Dim adresseEmail2 As String
Dim adresseCC As String
Dim wbTemp As Workbook
Dim wsTemp As Worksheet
Dim PlageACopier As Range
Dim wsSource As Worksheet
' Enregistre le fichier avant l'envoi
ThisWorkbook.Save
' Définit les adresses e-mails des destinataires
adresseEmail1 = "[EMAIL]bbbbb@gmail.com[/EMAIL]"
adresseEmail2 = "[EMAIL]jjjjjj@gmail.com[/EMAIL]"
adresseCC = "[EMAIL]ccccc@ffff.com[/EMAIL]" ' Adresse en copie (CC)
' Crée une nouvelle feuille de travail temporaire
Set wsSource = ThisWorkbook.Sheets(1) ' Modifier si besoin pour sélectionner la bonne feuille
Set PlageACopier = wsSource.Range("A1:I41")
' Crée un nouveau classeur temporaire
Set wbTemp = Workbooks.Add
Set wsTemp = wbTemp.Sheets(1)
' Copie la plage dans le nouveau classeur
PlageACopier.Copy
wsTemp.Range("A1").PasteSpecial Paste:=xlPasteAll ' Colle tout
wsTemp.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths ' Colle les largeurs de colonnes
' Ajuste les hauteurs de lignes
Dim i As Integer
For i = 1 To PlageACopier.Rows.Count
wsTemp.Rows(i).RowHeight = wsSource.Rows(i).RowHeight
Next i
' Enregistre le classeur temporaire dans un fichier
cheminFichier = Environ("TEMP") & "\" & "Extrait_" & ThisWorkbook.Name
wbTemp.SaveAs cheminFichier
' Crée une instance de l'application Outlook
Set OutlookApp = CreateObject("Outlook.Application")
' Crée un nouvel e-mail
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = adresseEmail1 & ";" & adresseEmail2 ' Ajoute les adresses e-mail
.CC = adresseCC ' Ajoute l'adresse en copie (CC)
.Subject = "Fichier en pièce jointe"
.Body = "Veuillez trouver ci-joint le fichier."
.Attachments.Add cheminFichier ' Ajoute le fichier en pièce jointe
.Display ' Affiche l'e-mail avant l'envoi (utilisez .Send pour envoyer directement)
End With
' Ferme et supprime le fichier temporaire après envoi
wbTemp.Close SaveChanges:=False
Kill cheminFichier ' Supprime le fichier temporaire
' Libère la mémoire
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
Dernière modification par un modérateur: