Enregistrement sous + envoi mail fichier

Bonjour à tous,

je suis face à un nouveau problème :

vous trouverez ci joint mon fichier…

J’ai essayé de créer une macro mais celle ci ne fonctionne pas.
Je souhaitais qu’Excel m’enregistre sous mon fichier dans un dossier en m’ajoutant la date du jour dans le titre puis qu’il envoie uniquement les feuilles « Situ Parc »; « Immobilisations KV »; Immobilisation « K78 » sous format PDF.

Pi : j’utilise Outlook 365 pour l’envoie de mail.

Pourriez vous m’aider s’il vous plait ?

Merci d’avance

Suivi Dispo KV K78.xlsm (267,7 Ko)

Bonjour
J’ai inclus dans ton fichier 2 macros :

Sub Enregistrement_pdf()
chemin = ThisWorkbook.Path & «  »
Sheets(« Situ Parc »).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & "Situ Parc " & Format(Date, « dd-mm-yyyy ») & « .pdf » _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

Sheets(« Immobilisations KV »).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & "Immobilisations KV " & Format(Date, « dd-mm-yyyy ») & « .pdf » _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Sheets(« Immobilisations K78 »).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & "Immobilisations K78 " & Format(Date, « dd-mm-yyyy ») & « .pdf » _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End Sub

Sub envoi_mail()
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String

chemin = ThisWorkbook.Path & «  »
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = « adresse du destinataire » 'l’adresse mail du destinataire
.Subject = « Test » 'le sujet
.Body = "Contenu " 'le contenu
.Attachments.Add Attach & chemin & "Situ Parc " & Format(Date, « dd-mm-yyyy ») & « .pdf » 'pi?ce jointe Situ Parc
.Attachments.Add Attach & chemin & "Immobilisations KV " & Format(Date, « dd-mm-yyyy ») & « .pdf » 'pi?ce jointe Immobilisations KV
.Attachments.Add Attach & chemin & "Immobilisations K78 " & Format(Date, « dd-mm-yyyy ») & « .pdf » 'pi?ce jointe Immobilisations K78
.Send
End With
ol.Quit

End Sub

La 1° macro enregistre en format pdf tes 3 onglets dans le répertoire de l’outil (3 fichiers pdf)
La 2° macro réalise l’envoi
Tu dois mettre à jour ces lignes :
.To = « adresse du destinataire » 'l’adresse mail du destinataire
.Subject = « Test » 'le sujet
.Body = "Contenu " 'le contenu
l’adresse mail du destinataire
le sujet du mail
le corp du mail

Il faut côcher la référence « Microsoft Outlook Library » ici :
Dans l’éditeur de macro menu horizontal en haut « Outils » puis choisir l’item « Références »

Côcher la référence « Microsoft Outlook Library » puis OK

J’ai testé l’enregistrement en pdf qui fonctionne très bien
Je n’ai pas testé l’envoi car je n’ai pas le logiciel de messagerie Outlook
Je ne sais pas si il est OK surtout avec plusieurs pièces jointes

Fais des essais et dis moi

Suivi Dispo KV K78.xlsm (261,3 Ko)

Si tu le souhaites en fouinant sur internet j’ai réussi à réaliser qu’un fichier pdf avec à l’intérieur tes 3 onglets
Ce fichier porte le nom de l’outil avec la date de sa réalisation :
Le code :
im sRep As String
Dim sFilename As String

Sheets(Array("Situ Parc", "Immobilisations KV", "Immobilisations K78")).Select
sRep = ThisWorkbook.Path
sFilename = ThisWorkbook.Name
sFilename = Left(sFilename, InStr(1, sFilename, ".")) & "pdf"
sFilename = Split(sFilename, ".")(0) & " " & Format(Date, "dd-mm-yyyy") & ".pdf"

ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=sRep & "\" & sFilename, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

Le fichier est enregistré dans le répertoire de l’outil
A remplacer dans la macro « Sub Enregistrement_pdf() »

Pour l’envoi remplace toutes ces lignes :

.Attachments.Add Attach & chemin & "Situ Parc " & Format(Date, « dd-mm-yyyy ») & « .pdf » 'pi?ce jointe Situ Parc
.Attachments.Add Attach & chemin & "Immobilisations KV " & Format(Date, « dd-mm-yyyy ») & « .pdf » 'pi?ce jointe Immobilisations KV
.Attachments.Add Attach & chemin & "Immobilisations K78 " & Format(Date, « dd-mm-yyyy ») & « .pdf » 'pi?ce jointe Immobilisations K78

par :

.Attachments.Add & chemin & ThisWorkbook.Name & " " & Format(Date, « dd-mm-yyyy ») & « .pdf » 'pièce jointe

Version donc un seul fichier pdf à tester
Ne pas oublier de mettre à jour l’adresse mail l’objet et le contenu

Petite coquille ici sur la toute première ligne de code :
im sRep As String
c’est plutôt :
Dim sRep As String
Mille excuses mauvais copier/coller

Bonjour FFO,

merci pour le coup de main mais malheureusement je dois être une chèvre… lol

j’ai essayé de remplacer mais ça ne fonctionne pas.

J’ai en utilisant « Enregistrer une macro » vu que si tu maintenais Ctrl puis sélectionnait une par une les feuille puis faisait enregistrer sous il t’enregistrait bien les 3 feuilles :

Sub Macro5()

’ Macro5 Macro


Sheets(Array(« Situ Parc », « Immobilisations KV », « Immobilisations K78 »)).Select
Sheets(« Situ Parc »).Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
« K:\Atelier\03 SYSTEME DE PRODUCTION\03 Syst Prod Suivi des Immos\Suivi Dispo KV K78 date .pdf » _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Application.Goto Reference:=« Macro5 »
End Sub

Est ce qu’il te serait possible juste de modifier cette macro en la réécrivant pour que lorsque j’enregistre le fichier il renomme la feuille en me mettant la date et l’heure.
J’ai essayé de modifier cette macro en écrivant & Format(date « dd-……………) » mais ça ne fonctionne pas.

Pi le chemin du classeur K est le bon.

Merci d’avance

Bonjour
Je n’ai pas très bien compris ce que tu attends
Tu souhaites enregistrer le classeur en pdf en changeant les noms des onglets qu’il possède ?
Tu souhaites enregistrer chaque feuille en pdf en enrichissant le nom d’enregistrement de la date ?
Pas facile de te comprendre
De toute façon impossible d’enregistrer le classeur en pdf
Seuls les onglets le sont soit chacun dans son propre fichier pdf soit tous dans le même
Je te propose ce code qui réalise la 1° option (un fichier pdf par onglet soit 3 fichiers pdf pour ces 3 onglets) :

chemin = « K:\Atelier\03 SYSTEME DE PRODUCTION\03 Syst Prod Suivi des Immos »
feuilles = « Situ Parc/Immobilisations KV/Immobilisations K78 »
jour = Format(Date, « dd-mm-yyyy »)
heure = Format(Now, « hh ») & « h » & Format(Now, « mm »)
For i = 0 To UBound(Split(feuilles, « / »))
onglet = Split(feuilles, « / »)(i)
Sheets(onglet).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
chemin & "Suivi Dispo KV K78 " & onglet & " " & jour & " " & heure & « .pdf » _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Next

Les 3 fichiers pdf sont enregistrés dans ce répertoire :
« K:\Atelier\03 SYSTEME DE PRODUCTION\03 Syst Prod Suivi des Immos »
Leur nom est constitué du nom du classeur suivi du nom de l’onglet suivi de la date du jour suivi de l’heure (heure et minute) à laquelle l’opération a été effectuée copie d’écran du résultat :

En espérant avoir répondu à ton attente
Dis moi

Précision
Attention le copier/coller supprime le dernier caractère indispensable du chemin qui est «  » ici :

chemin = « K:\Atelier\03 SYSTEME DE PRODUCTION\03 Syst Prod Suivi des Immos\»

après Immos bien ajouté ce caractère «  » qui ne suit pas le copier/coller

Désolé mais il en va de la recopie des fichiers pdf dans le bon répertoire

Au top !
Merci FFO je vais essayer ça.

Merci à toi

Bonjour FFO,

cela à fonctionné mais ne fonctionne plus… au lieu d’aller me l’enregistrer sur le lecteur réseau « K » , il me l’enregistre dans un fichier documents sur mon PC alors que ça a fonctionner pour l’enregistrer sous en version xlsm du fichier ainsi que pour les autres en format PDF.
Je pense qu’il n’aime pas le fait qu’il doive aller l’enregistrer sur un lecteur réseau pourtant l’adresse est bonne… :

ma macro :

Sub Enregistrement_xlsm()

’ Enregistrement_xlsm Macro


ChDir « K:\Atelier\03 SYSTEME DE PRODUCTION\03 Syst Prod Suivi des Immos »
ActiveWorkbook.SaveAs Filename:= _
Format(Date, « ddmmyyyy ») & " " & Format(Time, « hh-mm ») & " Suivi Immobilisations KV & K78" & « .xlsm » _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True
Sheets(« Immobilisations K78 »).Select
End Sub

Merci d’avance

Bonsoir à tous,

Je pense qu’il manque le slash à la fin de :
ChDir " K:\Atelier\03 SYSTEME DE PRODUCTION\03 Syst Prod Suivi des Immos "
Essaies :
ChDir " K:\Atelier\03 SYSTEME DE PRODUCTION\03 Syst Prod Suivi des Immos \"
Cordialement.

Merci à toi.

Je vais essayer mais comment expliquer que ça ait fonctionné et que ça ne fonctionne plus alors que je n’ai rien changé à la formulation ?

Cdlt

Bonjour Zebulon,

J’ai essayé mai si je mais le slash il m’affiche un message d’erreur exécution 76 : Chemin d’accès introuvable…

:cry:

Bonjour,

Attention, je vois qu’un espace c’est invité à la fin du chemin, il faut lire :
"ChDir " K:\Atelier\03 SYSTEME DE PRODUCTION\03 Syst Prod Suivi des Immos\"
bien mettre les " " au début et à la fin. Pour être sûr du chemin dans l’explorateur se positionner sur le dossier qui doit recevoir le fichier PDF, faire un clic droit dessus en appuyant sur la touche MAJ en même temps, choisir Copier en tant que chemin d’accès.
image
l’insérer dans la macro, rajouter le slash à la fin.
Cordialement

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.