Envoyez une feuille en utilisant VBA dans Microsoft Excel
Dans cet article, nous allons créer une macro pour envoyer une feuille en pièce jointe dans un e-mail.
Avant d’exécuter la macro, nous devons spécifier un identifiant d’e-mail et un objet de l’e-mail.
Dans cet exemple, nous voulons envoyer « DataSheet » en tant que pièce jointe dans l’e-mail.
Explication logique
Nous avons créé une macro «MailSheet», qui prend l’identifiant et le sujet de l’e-mail dans les zones de texte. Il crée une nouvelle copie de «DataSheet», l’enregistre et l’envoie en pièce jointe.
Explication du code
Sheets (« DataSheet »). Copier Le code ci-dessus est utilisé pour créer une copie de « DataSheet » dans un nouveau classeur.
ActiveWorkbook.SaveAs « Part of » & ThisWorkbook.Name _ & « » & StrDate & « .xls »
Le code ci-dessus est utilisé pour enregistrer le nouveau classeur.
ActiveWorkbook.SendMail EmailID, MailSubject Le code ci-dessus est utilisé pour envoyer le classeur actif en tant que pièce jointe à l’ID de messagerie spécifié, avec l’objet donné.
ActiveWorkbook.Close False Le code ci-dessus est utilisé pour fermer le classeur actif sans l’enregistrer.
Veuillez suivre ci-dessous pour le code
Sub MailSheet() 'Declaring variables Dim StrDate, EmailID, MailSubject As String 'Getting value for Email ID and subject from textboxes EmailID = Sheet1.TextBox1.Value MailSubject = Sheet1.TextBox2.Value 'Copying "DataSheet" to new workbook Sheets("DataSheet").Copy 'Formatting date and time to particular format StrDate = Format(Date, "dd-mm-yy") & " " & Format(Time, "h-mm") 'Saving active workbook with new name ActiveWorkbook.SaveAs "Part of " & ThisWorkbook.Name _ & " " & StrDate & ".xls" 'Sending mail ActiveWorkbook.SendMail EmailID, MailSubject 'Close the active workbook ActiveWorkbook.Close False End Sub
Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.
Nous aimerions avoir de vos nouvelles, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]