Bonjour,
J'espère que vous allez bien.
je suis assez jeune dans le VBA et je cherche a modifier un code que j'ai trouvé mais je sèche un peu.
voila le code:
Sub EnvoyerPDF()
Call Envoyer_PDF("EnvoyerCourriel")
End Sub
Function Envoyer_PDF(Optional action As String = "EnregistrerSeulement") As Boolean ' Copies sheets into new PDF file for e-mailing
Dim CetteFeuille As String, CeFichier As String, NomRépertoire As String
Dim EnrSous As String
Application.ScreenUpdating = False
' Obtention du nom de sauvegarde du fichier
CetteFeuille = ActiveSheet.Name
CeFichier = ActiveWorkbook.Name
NomRépertoire = ActiveWorkbook.Path
EnrSous = NomRépertoire & "\" & CetteFeuille & ".pdf"
'Définition de la qualité d'impression
On Error Resume Next
ActiveSheet.PageSetup.PrintQuality = 600
Err.Clear
On Error GoTo 0
' Explique à l'utilisateur comment envoyer le fichier
On Error GoTo ErreurRefLib
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=EnrSous, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
On Error GoTo 0
' Création du courriel
If action = "EnvoyerCourriel" Then
On Error GoTo EnregistrerSeulement
Set olApp = CreateObject("Outlook.Application")
Set olEmail = olApp.CreateItem(olMailItem)
With olEmail
.Subject = CetteFeuille & ".pdf" & "Prevision "
.Attachments.Add EnrSous
.Display
End With
On Error GoTo 0
GoTo FinMacro
End If
EnregistrerSeulement:
MsgBox "Une copie de cette feuille a été sauvegardée avec succès en format .pdf " & vbCrLf & vbCrLf & EnrSous & _
" Révisez le document .pdf. Si le document ne s'affiche pas correctement, ajustez vos paramètres d'impression et ré-essayez."
Envoyer_PDF = True
GoTo FinMacro
ErreurRefLib:
MsgBox "Impossible de sauvegarder en pdf. Référence introuvable ou manquante."
Envoyer_PDF = False
GoTo FinMacro
FinMacro:
End Function
J'ai voulu rajouter & "Prevision " à une ligne mais il me sort une erreur maintenant ( voir image Message Excel).
je voudrais aussi rajouter dans le titre de l'email et le nom du PDF plus d'information qui se trouve sur des cellules dans chaque feuilles (voir image Information sur l'onglet). Cela est-il possible de le faire ?
information:
-B1
-E1
-J1
-J2
En outre, je ne trouve aucune explication sur la manière de modifier le code de sélection de la zone qui doit apparaître sous forme de fichier PDF. Je ne veux insérer que la zone A1 à T24 de la feuille en format paysage. Je ne peux pas passer par l'aperçu des sauts de page.
Peut-on mettre les e-mails automatiquement sur l'email selon un cellule dans ce fichier? exemple onglet "information" cellule -> C3.
J'espère que vous allez pouvoir de donner un coup de main et m'aiguiller sur des formes.
J'espère que j'ai été assez claire
Connaissez-vous des formations gratuites sur le codage VBA. Je souhaiterais apprendre cela.
cordialement,
J'espère que vous allez bien.
je suis assez jeune dans le VBA et je cherche a modifier un code que j'ai trouvé mais je sèche un peu.
voila le code:
Sub EnvoyerPDF()
Call Envoyer_PDF("EnvoyerCourriel")
End Sub
Function Envoyer_PDF(Optional action As String = "EnregistrerSeulement") As Boolean ' Copies sheets into new PDF file for e-mailing
Dim CetteFeuille As String, CeFichier As String, NomRépertoire As String
Dim EnrSous As String
Application.ScreenUpdating = False
' Obtention du nom de sauvegarde du fichier
CetteFeuille = ActiveSheet.Name
CeFichier = ActiveWorkbook.Name
NomRépertoire = ActiveWorkbook.Path
EnrSous = NomRépertoire & "\" & CetteFeuille & ".pdf"
'Définition de la qualité d'impression
On Error Resume Next
ActiveSheet.PageSetup.PrintQuality = 600
Err.Clear
On Error GoTo 0
' Explique à l'utilisateur comment envoyer le fichier
On Error GoTo ErreurRefLib
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=EnrSous, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
On Error GoTo 0
' Création du courriel
If action = "EnvoyerCourriel" Then
On Error GoTo EnregistrerSeulement
Set olApp = CreateObject("Outlook.Application")
Set olEmail = olApp.CreateItem(olMailItem)
With olEmail
.Subject = CetteFeuille & ".pdf" & "Prevision "
.Attachments.Add EnrSous
.Display
End With
On Error GoTo 0
GoTo FinMacro
End If
EnregistrerSeulement:
MsgBox "Une copie de cette feuille a été sauvegardée avec succès en format .pdf " & vbCrLf & vbCrLf & EnrSous & _
" Révisez le document .pdf. Si le document ne s'affiche pas correctement, ajustez vos paramètres d'impression et ré-essayez."
Envoyer_PDF = True
GoTo FinMacro
ErreurRefLib:
MsgBox "Impossible de sauvegarder en pdf. Référence introuvable ou manquante."
Envoyer_PDF = False
GoTo FinMacro
FinMacro:
End Function
J'ai voulu rajouter & "Prevision " à une ligne mais il me sort une erreur maintenant ( voir image Message Excel).
je voudrais aussi rajouter dans le titre de l'email et le nom du PDF plus d'information qui se trouve sur des cellules dans chaque feuilles (voir image Information sur l'onglet). Cela est-il possible de le faire ?
information:
-B1
-E1
-J1
-J2
En outre, je ne trouve aucune explication sur la manière de modifier le code de sélection de la zone qui doit apparaître sous forme de fichier PDF. Je ne veux insérer que la zone A1 à T24 de la feuille en format paysage. Je ne peux pas passer par l'aperçu des sauts de page.
Peut-on mettre les e-mails automatiquement sur l'email selon un cellule dans ce fichier? exemple onglet "information" cellule -> C3.
J'espère que vous allez pouvoir de donner un coup de main et m'aiguiller sur des formes.
J'espère que j'ai été assez claire
Connaissez-vous des formations gratuites sur le codage VBA. Je souhaiterais apprendre cela.
cordialement,