userform en pdf envoi outlook

yoyo77

XLDnaute Occasionnel
Bonsoir le Forum:D,

J'ai besoin de votre aide SVP ;),

j'ai un Userform à envoyer par Mail (Outlook) en format Pdf.

Pour l'instant l'envoi fonctionne mais se fait par un array en format excel. Pour le Pdf je bloque :(

Fonctionnement : En double cliquant sur un numéro de la colonne C de la Feuil1 l'userform3 s'affiche et dessus il y a un bouton Mail, celui-ci devra envoyer via Outlook l'userform3 en format Pdf,

En espérant que cela soit réalisable :confused:

Merci pour votre aide :cool:

yoyo
 

Pièces jointes

  • YOYO77 test mail PDF V.1.xlsm
    236.3 KB · Affichages: 71

xhudi69

XLDnaute Accro
Re : userform en pdf envoi outlook

Bonsoir yoyo77, le Forum,

Ce code transfert ton UserForm en fichier PDF.....

Pas trop le temps ce soir, mais tu peux t'inspirer de ce code sur ton UserForm et remplacer le "private Sub Image1 Click ()" en mettant ce code dans un bouton (sur l'UserForm):

Code:
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const VK_SNAPSHOT = 44
Const VK_LMENU = 164
Const KEYEVENTF_KEYUP = 2
Const KEYEVENTF_EXTENDEDKEY = 1

Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Image1_Click()
    Dim pdfName As String
    a = Sheets("ACCUEIL").Range("AO1").Value 'Variable largeur d'impression.....
    
    Application.ScreenUpdating = False  '...............................
    
    keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
    keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
     
    DoEvents
    
    ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
    With ActiveSheet.PageSetup
        .LeftMargin = Application.InchesToPoints(0.2)
        .RightMargin = Application.InchesToPoints(0.2)
        .TopMargin = Application.InchesToPoints(0.236)
        .BottomMargin = Application.InchesToPoints(0.236)
        .Orientation = xlLandscape
        .CenterHorizontally = True
        .CenterVertically = True
    End With
    
    ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
    'Redimentionnement de l'image................
    With ActiveSheet.Shapes("Picture 1")
        .Height = 270
        .Width = a
    End With
    
    pdfName = ActiveWorkbook.Path & "\" & Label16.Caption & "_" & ComboBox1.Value & "_" & ComboBox2.Value & ".pdf"
     'Debug.Print pdfName
    
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=pdfName, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
    
    Application.DisplayAlerts = False   '.............................
    Worksheets(Worksheets.Count).Delete
    'Application.SendKeys "{ENTER}"
    Unload Me
    Application.DisplayAlerts = True    '.............................
    Application.ScreenUpdating = True   '.............................
    Sheets("ACCUEIL").Activate
End Sub

Voir le fichier sur ce FIL

Le code se trouve dans l'UserForm8, à toi de l'adapter.

@+ :cool:
 
Dernière édition:

xhudi69

XLDnaute Accro
Re : userform en pdf envoi outlook

Bonsoir yoyo77, le Forum,

En PJ ton fichier remanié, tu as en fin de macro la possibilité de sauvegarder ta pièce jointe.
Le principe:
On prend un SnapShot de l'UserForm
On ajoute une feuille où on colle la photo de l'UserForm
On transfert le tout en PDF
On l'envoie en PDF par mail en tant que pièce jointe.
Tu as la possibilité de modifier le corps de ton message (que tu peux mettre dans une variable).
de modifier le nom de ta pièce jointe (que tu peux mettre dans une variable).
de modifier le destinataire (que tu peux mettre dans une variable).
Etc....Etc..... :p
Tu pourrais mettre toutes ces variable sur un UserForm avec ComboBox pour sélectionner tout ça :)
Voilà, n'oublie pas de modifier le destinataire et l'envoyeur et (ou) le corps du message.

Amuses-toi bien :cool:
 

Pièces jointes

  • YOYO77 test mail PDF V.2.xlsm
    238.4 KB · Affichages: 86

yoyo77

XLDnaute Occasionnel
Re : userform en pdf envoi outlook

Bonsoir xhudi69 :D,

Merci pour ton aide je cherche mais j'ai encore du chemin pour arriver à ton niveau,

j'ai essayé avec ton adaptation cela m'indique Mail envoyé :confused:

Est ce possible d'ouvrir Outlook avec le pdf en piece jointe sans envoyer directement :confused:, je m'explique afin que l'utilisateur puisse consulter la pièce jointe pour s'assurer que rien ne cloche avant d'envoyer et puisse si nécessaire rajouter un message dans le texte du Mail.

Sinon j'ai essayé :
'==========ICI tu peux faire une sauvegarde de ta pièce jointe====================
' ATTENTION, renommer le chemin pour la sauvegarde

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"D:\ESSAI" & Range("C1").Text & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

mais cela ne marche pas :(
Dans le chemin a quoi ca correspond & Range("C1").Text

Merci :cool:
 

xhudi69

XLDnaute Accro
Re : userform en pdf envoi outlook

Bonsoir yoyo77, le Forum

Au nombre d'e-mail que je reçois, je vois bien que tu teste le fichier, mais tu as oublié de modifier cette ligne ;) :
Code:
objMessage.To = "arl.multi@free.fr"       'obligatoire.....ICI l'adresse mail destinataire

@+ :cool:

EDIT: pour faire un essais il faut mettre ton adresse mail :cool::cool:
 
Dernière édition:

xhudi69

XLDnaute Accro
Re : userform en pdf envoi outlook

Bonsoir yoyo77, le Forum,

Est ce possible d'ouvrir Outlook avec le pdf en piece jointe sans envoyer directement , je m'explique afin que l'utilisateur puisse consulter la pièce jointe pour s'assurer que rien ne cloche avant d'envoyer et puisse si nécessaire rajouter un message dans le texte du Mail.

La méthode "CDO" se passe d'ouvrir OutLook, personnellement j'utilise un UserForm pour taper le texte de mon mail, pour faire ton essais il faut que tu mettes ton adresse mail à la place de celle qui est sur la ligne de mon précédent post.

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"D:\ESSAI" & Range("C1").Text & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

Désolé c'est un résidu de ma macro, tu peux changer "D:\ESSAI" & Range("C1").Text & ".pdf" par "C:\Bureau\ESSAI.pdf"

Maiis vas doucement et commence par t'envoyer un mail, car cette méthode fonctionne très bien.

@+ :cool:
 

yoyo77

XLDnaute Occasionnel
Re : userform en pdf envoi outlook

Re,

Ca fonctionne très bien avec tes conseils;)

Juste une chose A la suite du message qui s'ouvre (après l'envoi) "le mail a été bien envoyé" serait il possible après le message de refermer l'userform3 et de rester en Feuil1 car pour l'instant je clique sur ok je ferme l'usf3 et je me retrouve en Feuil4 :confused:

Merci beaucoup ;)
 

xhudi69

XLDnaute Accro
Re : userform en pdf envoi outlook

Bonsoir yoyo77, le Forum,

En PJ ton fichier remanié, après avoir appuyé sur le bouton "MAIL", tu n'as rien à faire, le MsgBox est fugitif donc s'en vat au bout d'une seconde.

@+ :cool:
 

Pièces jointes

  • YOYO77 test mail PDF V.3.xlsm
    240.8 KB · Affichages: 45

xhudi69

XLDnaute Accro
Re : userform en pdf envoi outlook

Bonsoir yoyo77, le Forum,

En PJ une nouvelle version avec corps de message dans un UserForm et la possibilité de sélectionner le destinataire.

Fais moi ton retour.

@+ :cool:

EDIT: OUPS ! at the same time ;)
 

Pièces jointes

  • YOYO77 test mail PDF V.4.xlsm
    271.4 KB · Affichages: 53
  • YOYO77 test mail PDF V.4.xlsm
    271.4 KB · Affichages: 55
  • YOYO77 test mail PDF V.4.xlsm
    271.4 KB · Affichages: 54

yoyo77

XLDnaute Occasionnel
Re : userform en pdf envoi outlook

xhudi69 :D,

J'ai essayé cela fonctionne bien mais quand je veux sauvegarder la pièce jointe cela ne fonctionne pas,
Cela m'affiche un message :

Document non enregistré le document est peut être ouvert ou une erreur s'est produite lors de l'enregistrement.

je te joint mon fichier remanié avec tes macros,

Merci:cool::cool::cool:
 

Pièces jointes

  • YOYO77 test mail PDF V.4.xlsm
    235.1 KB · Affichages: 52
  • YOYO77 test mail PDF V.4.xlsm
    235.1 KB · Affichages: 59
  • YOYO77 test mail PDF V.4.xlsm
    235.1 KB · Affichages: 58

Discussions similaires

Réponses
2
Affichages
289
Réponses
1
Affichages
148
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 391
Messages
2 087 945
Membres
103 681
dernier inscrit
Lafite84