Bonjour à tous,
voici mon projet:
j'ai crée un fichier de facture Excel que j'ai enregistré sur mon bureau
dans ce fichier ils y a 12 onglets qui prennent le nom de chaque mois car je veux envoyer une facture par mois après l'avoir complété
je veux créer une macro simple avec son bouton dans chaque onglet et souhaiterai que cette macro :
- prenne cette feuille active telle que définie par la zone d'impression
- en crée un fichier PDF contenant uniquement cette feuille activre
- donne a ce fichier le nom de l'onglet actif comme par exemple "Facture septembre 2021" : "Facture" + "nom de l'onglet" + "l'année en cours"
- l'enregistre sur mon bureau dans un répertoire "FACTURE"
- envoie ce fichier via Outlook à un destinataire avec une personne en copie,
- l'objet doit être Facture du mois de Septembre 2021 (si on est en septembre 2021)
- le message du mail doit contenir du texte avec un saut de ligne après le bonjour et avant le cordialement et la signature
pour information:
le mois est mentionné en D54 (septembre)
la date de fin de mois de la facture est mentionnée en G5 (30/09/2021)
je ne suis pas du tout un développeur mais en fouillant un peu sur internet j'ai trouvé un truc que j'ai bricolé mais qui ne repond pas a toutes mes demandes c'est pou ca que j'ai besoin de vous.
Sub EnvoiPDFviaOutlook()
Dim Nom As String
Nom = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & Nom, quality:=xlQualityStandard, _
includedocproperties:=True, ignoreprintareas:=False, openafterpublish:= _
False
Set olApp = CreateObject("Outlook.application")
Set m = olApp.CreateItem(0)
With m
.Attachments.Add ActiveWorkbook.Path & "\" & Nom
.display
.To = "bob@excel.com"
.CC = "leponge@excel.com"
.Subject = "Facture du mois de " & Range("D54")
.Body = "Bonjour Patou," & vbCrLf & vbCrLf & "veuillez de trouver ci-joint ma facture du mois de " & Range("D54") & vbCrLf & vbCrLf & "Cordialement," & vbCrLf & "Mr Bob Leponge" & vbCrLf & "Tel: 06 99 99 99 99"
.Send
End With
End Sub
merci pour votre aide
voici mon projet:
j'ai crée un fichier de facture Excel que j'ai enregistré sur mon bureau
dans ce fichier ils y a 12 onglets qui prennent le nom de chaque mois car je veux envoyer une facture par mois après l'avoir complété
je veux créer une macro simple avec son bouton dans chaque onglet et souhaiterai que cette macro :
- prenne cette feuille active telle que définie par la zone d'impression
- en crée un fichier PDF contenant uniquement cette feuille activre
- donne a ce fichier le nom de l'onglet actif comme par exemple "Facture septembre 2021" : "Facture" + "nom de l'onglet" + "l'année en cours"
- l'enregistre sur mon bureau dans un répertoire "FACTURE"
- envoie ce fichier via Outlook à un destinataire avec une personne en copie,
- l'objet doit être Facture du mois de Septembre 2021 (si on est en septembre 2021)
- le message du mail doit contenir du texte avec un saut de ligne après le bonjour et avant le cordialement et la signature
pour information:
le mois est mentionné en D54 (septembre)
la date de fin de mois de la facture est mentionnée en G5 (30/09/2021)
je ne suis pas du tout un développeur mais en fouillant un peu sur internet j'ai trouvé un truc que j'ai bricolé mais qui ne repond pas a toutes mes demandes c'est pou ca que j'ai besoin de vous.
Sub EnvoiPDFviaOutlook()
Dim Nom As String
Nom = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".")) & "pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "\" & Nom, quality:=xlQualityStandard, _
includedocproperties:=True, ignoreprintareas:=False, openafterpublish:= _
False
Set olApp = CreateObject("Outlook.application")
Set m = olApp.CreateItem(0)
With m
.Attachments.Add ActiveWorkbook.Path & "\" & Nom
.display
.To = "bob@excel.com"
.CC = "leponge@excel.com"
.Subject = "Facture du mois de " & Range("D54")
.Body = "Bonjour Patou," & vbCrLf & vbCrLf & "veuillez de trouver ci-joint ma facture du mois de " & Range("D54") & vbCrLf & vbCrLf & "Cordialement," & vbCrLf & "Mr Bob Leponge" & vbCrLf & "Tel: 06 99 99 99 99"
.Send
End With
End Sub
merci pour votre aide