Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme d'envoi feuille par e-mail

3 réponses
Avatar
Alex
Bonjour =E0 tous,

Je rencontre un probl=E8me pour l'envoi d'une feuille par e-mail, malgre
les nombreux sujets sur le forum, je n'arrive pas =E0 trouver la
solution, et viens chercher de l'aide.
Depuis un userform, un bouton devrait permettre l'envoi d'une fiche
par e-mail, j'arrive bien =E0 faire la copie de ma fiche dans mon
classeur actif, de la renommer avec le nom de la valeur d'une cellule
de la feuille, puis =E0 recopier cette nouvelle fiche dans un nouveau
classeur et =E0 le sauvegarder toujours avec le nom de la valeur de la
cellule. Je genere outlook, les correspondants, l'objet, et le corps
du texte, mais cela coince sur .Attachments.Add.
Voici mes lignes de commandes avec mes commentaires :

'Fiche d'origine
Sheets("FichePerso2").Select
'Copie de ma fiche d'origine
Sheets("FichePerso2").Copy Before:=3DSheets(7)
'Renommer la fiche par la valeur d'une cellule de la feuille
Sheets("FichePerso2 (2)").Select
Sheets("FichePerso2 (2)").Name =3D Range("S81").Value
'Copie dans un nouveau classeur de la fiche nouvellement nomm=E9e
Sheets(Range("S81").Value).Copy
'Sauvegarde du classeur
ActiveWorkbook.SaveAs Filename:=3DRange("S81").Value
'Generation d'outlook avec son corps de message
Dim appoutlook As Outlook.Application
Dim message As Outlook.MailItem


Set appoutlook =3D CreateObject("outlook.application")
Set message =3D appoutlook.CreateItem(olMailItem)
With message
' .To =3D ("MAUN Alexandre")
.Recipients.Add ("VAIERE St=E9phanie")
.Subject =3D "Fiche Perso de " & Range("S81").Value
.Body =3D "Bonjour," & Chr(13) & Chr(13) & "Veuillez trouver ci-
joint la fiche Perso de ." & Range("S81").Value

' Ca beug ici : j'ai tent=E9 avec les trois lignes suivantes, mais cela
ne fonctionne pas
'Pour celui ci, j'ai le message Erreur d'excution 438 Propri=E9t=E9
ou m=E9thode non g=E9r=E9e par cet objet

.Attachments.Add ActiveWorkbook & "\" & ActiveWorkbook.Name

' Pour le second, erreur d'execution 1491058683 (a72004005) La taille
de la pi=E8ce d=E9passe la limite maximale
' Le second message me laisse =E0 penser que cela adresse mon calsseur
d'origine qui est tr=E8s lourd et non mon classeur avec uniquement ma
fiche qui elle ne pese que 142 ko
.Attachments.Add ThisWorkbook.Path & "\" & ThisWorkbook.Name



'pour la troisieme erreur d'execution 424 Objet requis

.Attachments.Add Workbook.Name =3D Range("S81").Value & "\" &
Workbook.Name + Range("S81").Value


'en display car le mail doit pouvoir =EAtre compl=E9ter
.Display
End With

Merci par avance de votre aide.
Bien cordialement.
Alex

3 réponses

Avatar
daniel.j
des exemples ici

http://dj.joss.free.fr/web.htm

Daniel



Le 16/04/2013 10:51, Alex a écrit :
Bonjour à tous,

Je rencontre un problème pour l'envoi d'une feuille par e-mail, malgre
les nombreux sujets sur le forum, je n'arrive pas à trouver la
solution, et viens chercher de l'aide.
Depuis un userform, un bouton devrait permettre l'envoi d'une fiche
par e-mail, j'arrive bien à faire la copie de ma fiche dans mon
classeur actif, de la renommer avec le nom de la valeur d'une cellule
de la feuille, puis à recopier cette nouvelle fiche dans un nouveau
classeur et à le sauvegarder toujours avec le nom de la valeur de la
cellule. Je genere outlook, les correspondants, l'objet, et le corps
du texte, mais cela coince sur .Attachments.Add.
Voici mes lignes de commandes avec mes commentaires :

'Fiche d'origine
Sheets("FichePerso2").Select
'Copie de ma fiche d'origine
Sheets("FichePerso2").Copy Before:=Sheets(7)
'Renommer la fiche par la valeur d'une cellule de la feuille
Sheets("FichePerso2 (2)").Select
Sheets("FichePerso2 (2)").Name = Range("S81").Value
'Copie dans un nouveau classeur de la fiche nouvellement nommée
Sheets(Range("S81").Value).Copy
'Sauvegarde du classeur
ActiveWorkbook.SaveAs Filename:=Range("S81").Value
'Generation d'outlook avec son corps de message
Dim appoutlook As Outlook.Application
Dim message As Outlook.MailItem


Set appoutlook = CreateObject("outlook.application")
Set message = appoutlook.CreateItem(olMailItem)
With message
' .To = ("MAUN Alexandre")
.Recipients.Add ("VAIERE Stéphanie")
.Subject = "Fiche Perso de " & Range("S81").Value
.Body = "Bonjour," & Chr(13) & Chr(13) & "Veuillez trouver ci-
joint la fiche Perso de ." & Range("S81").Value

' Ca beug ici : j'ai tenté avec les trois lignes suivantes, mais cela
ne fonctionne pas
'Pour celui ci, j'ai le message Erreur d'excution 438 Propriété
ou méthode non gérée par cet objet

.Attachments.Add ActiveWorkbook & "" & ActiveWorkbook.Name

' Pour le second, erreur d'execution 1491058683 (a72004005) La taille
de la pièce dépasse la limite maximale
' Le second message me laisse à penser que cela adresse mon calsseur
d'origine qui est très lourd et non mon classeur avec uniquement ma
fiche qui elle ne pese que 142 ko
.Attachments.Add ThisWorkbook.Path & "" & ThisWorkbook.Name



'pour la troisieme erreur d'execution 424 Objet requis

.Attachments.Add Workbook.Name = Range("S81").Value & "" &
Workbook.Name + Range("S81").Value


'en display car le mail doit pouvoir être compléter
.Display
End With

Merci par avance de votre aide.
Bien cordialement.
Alex

Avatar
Alex
Bonjour,

Merci pour ta réponse et le lien. En effet, le lien propose bien des
exemples mais avec un envoi immédiat, (et fonctionne très bien), mon
problème c'est que je souhaiterai que le mail soit généré mais pas
envoyé afin de pouvoir le completer.
Merci par avance de votre aide.
Bien cordialement.
Alex
Avatar
Alex
Re :

J'ai trouvé la solution, j'ai revu ma facon d'enregistrer le fichier
en précisant bien le chemin d'accès exacte, et pour joindre le fichier
à mon mail, j'ai mis :

.Attachments.Add ActiveWorkbook.Path & "" & ActiveWorkbook.Name

et la est bien identifié le fichier nouvellement crée.

Bien cordialement.
Alex