Inserer dans un macro la fonction "imprimé" (sur imprimante par default)

JR.31

XLDnaute Occasionnel
Bonjour a toutes et tous,

Enfin ma macro marche comme je veux, elle enregistre ma feuille en PDF, et l'envoie par mail.

Votre aide me serait encore précieuse pour deux chose.

La première est que quant j'utilise ma macro, il faut que je clique sur le bouton envoyer de Outlook. Serait il possible que le mail parte sans avoir besoin d'appuyer sur ce bouton "Envoyer".

La seconde, est le fait qu'en plus de ma macro, j'aimerai faire un impression de la feuille active (sur imprimante par default).

Voici ma macro actuellement:

Sub SendWithAtt()
Dim olApp As Outlook.Application
Dim olMail As MailItem
Dim CurFile As String
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
CurFile = ThisWorkbook.Path & "\" & Range("D1") & "_" & Format(Date, "dd-mmmm-yyyy") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With olMail
.To = "nom.prénom@domaine.fr"
.CC = ""
.Subject = "Litige SOBRAQUES BEZIERS"
.Body = "Bonjour," & vbCrLf & "Veuillez trouver en pièce jointe les litiges de ce jour" & vbCrLf & "Vous souhaitant bonne réception" & vbCrLf & "Le Service SAV BEZIERS" ' A modifier
.Attachments.Add CurFile
.Display
End With
MsgBox "Merci de bien vouloir vérifier que le message apparait dans -messages envoyés- dans votre messagerie OUTLOOK."
Set olMail = Nothing
Set olApp = Nothing
End Sub

Merci pour toute l'aide que vous m'apportez.

JR.31
 

JCGL

XLDnaute Barbatruc
Re : Inserer dans un macro la fonction "imprimé" (sur imprimante par default)

Bonjour à tous,

Peux-tu essayer ceci :

VB:
Option Explicit


Sub SendWithAtt()
    Dim olApp As Outlook.Application
    Dim olMail As MailItem
    Dim CurFile As String
    Set olApp = New Outlook.Application
    Set olMail = olApp.CreateItem(olMailItem)
    CurFile = ThisWorkbook.Path & "\" & Range("D1") & "_" & Format(Date, "dd-mmmm-yyyy") & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
                                    Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False
    With olMail
        .To = "nom.prénom@domaine.fr"
        .CC = ""
        .Subject = "Litige SOBRAQUES BEZIERS"
        .Body = "Bonjour," & vbCrLf & "Veuillez trouver en pièce jointe les litiges de ce jour" & vbCrLf & "Vous souhaitant bonne réception" & vbCrLf & "Le Service SAV BEZIERS"    ' A modifier
        .Attachments.Add CurFile
        .Display
        .Send
    End With
    MsgBox "Merci de bien vouloir vérifier que le message apparait dans -messages envoyés- dans votre messagerie OUTLOOK."
    ActiveSheet.PrintOut
    Set olMail = Nothing
    Set olApp = Nothing
End Sub

A+ à tous
 

Staple1600

XLDnaute Barbatruc
Re : Inserer dans un macro la fonction "imprimé" (sur imprimante par default)

Bonjour à tous


La seconde, est le fait qu'en plus de ma macro, j'aimerai faire un impression de la feuille active (sur imprimante par default).
Tu as déjà la solution au bout de tes doigts ;)
Il te suffit d'imprimer ta feuille active tout en laissant tourner l'enregistreur de macros.
Tu auras alors le code VBA de base qu'il te suffira d'ajouter dans ta macro existante.

Concernant l'envoi direct du mail, consulte les archives du forum à ce sujet (en cliquant sur la loupe e haut à droite)
(tu devrais y trouver des suggestions telle que: utiliser Clickyes.exe ou encore passer par la méthode CDO en lieu et place d'Outlook et/ou surement une invitation à découvrir les pépites [concernant Excel et l'email] produites par Ron de Bruin )

EDITION : Bonjour JCGL
 

JR.31

XLDnaute Occasionnel
Re : Inserer dans un macro la fonction "imprimé" (sur imprimante par default)

Je viens de faire une macro pour éditer en 2 exemplaires ça me donne ceci:

Sub Imprimer()
'
' Imprimer Macro
'

'
ExecuteExcel4Macro "PRINT(1,,,2,,,,,,,,2,,,TRUE,,FALSE)"
End Sub

Où dois je placer cela dans ma macro, milles excuses de débute vraiment en VBA.

Merci
 

Staple1600

XLDnaute Barbatruc
Re : Inserer dans un macro la fonction "imprimé" (sur imprimante par default)

Re

JR.31
:confused:
Chez moi, l'enregistreur de macros fournit ce code
Code:
Sub Macro1()
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True, IgnorePrintAreas:=False
End Sub

Tu l'as utilisé sur ton PC l'enregistreur ?
(Tu as cliqué sur le lien que j'ai mis dans le message #3 ? )
Lien qui explique comment enregistrer une macro.
 
Dernière édition:

JR.31

XLDnaute Occasionnel
Re : Inserer dans un macro la fonction "imprimé" (sur imprimante par default)

Oui Sample1600, je l'ai fait, maintenant tout marche bien.

Je vais abuser :eek:, est t'il possible de mettre en adresse mail un groupe déjà constitué par exemple:
Sur Outlook, j'ai un groupe qui s'appelle "STAT", peut on mettre ce groupe en adresse mail afin d'envoyer le document a une vingtaines de personnes?

Merci.

JR.31
 

Discussions similaires

  • Question
Microsoft 365 Macro VBA
Réponses
2
Affichages
418

Statistiques des forums

Discussions
312 239
Messages
2 086 508
Membres
103 236
dernier inscrit
Menni