Macro Excel : enregistrer / envoyer mail / feuille blanche
Fermé
mathis40
Messages postés
1
Date d'inscription
dimanche 21 avril 2019
Statut
Membre
Dernière intervention
21 avril 2019
-
Modifié le 22 avril 2019 à 08:44
sifusalade Messages postés 134 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 16 juillet 2021 - 23 avril 2019 à 23:05
sifusalade Messages postés 134 Date d'inscription samedi 21 janvier 2012 Statut Membre Dernière intervention 16 juillet 2021 - 23 avril 2019 à 23:05
A voir également:
- Macro Excel : enregistrer / envoyer mail / feuille blanche
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Macro word - Guide
- Aller à la ligne excel - Guide
1 réponse
sifusalade
Messages postés
134
Date d'inscription
samedi 21 janvier 2012
Statut
Membre
Dernière intervention
16 juillet 2021
7
23 avril 2019 à 23:05
23 avril 2019 à 23:05
Demande à la fois trop complète et pas assez. Tu devrais faire une demande pour chaque chose que tu veux.
Mais je vais quand même tenter de répondre ici.
Ta macro feuille blanche consiste à vider ta feuille ? Tu ne peux pas tout simplement supprimer les colonnes A à R ? (Ta colonne S deviendra A, T deviendra B etc...), sinon retiens que l'adresse d'une cellule fusionnée est toujours la première contenue dans la plage. Exemple si tu à fusionné de A1 à A12. Son adresse est A1. Si tu essaye de séléctionner A1 à A2 cela ne fonctionnera pas. Si tu sélectionnes A2, cela te prendra A1 à A12.
Pour ta macro qui envoi le mail :
J'ai eu la flemme tout saisir alors j'ai fais une recherche sur le net pour faire un copier/coller ????. Je suis tombé très très rapidement sur quelque chose de très bien que voici :
commence par ajouter la référence
Puis :
Pour ta macro enregistrer sous. Je n'ai absolument rien compris de ce que tu veux. Désolé.
Mais je vais quand même tenter de répondre ici.
Ta macro feuille blanche consiste à vider ta feuille ? Tu ne peux pas tout simplement supprimer les colonnes A à R ? (Ta colonne S deviendra A, T deviendra B etc...), sinon retiens que l'adresse d'une cellule fusionnée est toujours la première contenue dans la plage. Exemple si tu à fusionné de A1 à A12. Son adresse est A1. Si tu essaye de séléctionner A1 à A2 cela ne fonctionnera pas. Si tu sélectionnes A2, cela te prendra A1 à A12.
Pour ta macro qui envoi le mail :
J'ai eu la flemme tout saisir alors j'ai fais une recherche sur le net pour faire un copier/coller ????. Je suis tombé très très rapidement sur quelque chose de très bien que voici :
commence par ajouter la référence
Microsoft Outlook X.0 Object Libraryà ton Excel.
Puis :
Sub EnvoyerEmail(ByVal Sujet As String, ByVal Destinataire As String, ByVal ContenuEmail As String, Optional ByVal PieceJointe As String) On Error GoTo EnvoyerEmailErreur 'définition des variables Dim oOutlook As Outlook.Application Dim WasOutlookOpen As Boolean Dim oMailItem As Outlook.MailItem Dim Body As Variant Body = ContenuEmail 'vérification si le Contenu du mail n'est pas vide. Si oui, email n'est pas envoyé. Si vous voulez pouvoir envoyer les email vides, mettez en commentaire les 4 lignes de code qui suivent. If (Body = False) Then MsgBox "Mail non envoyé car vide", vbOKOnly, "Message" Exit Sub End If 'préparer Outlook PreparerOutlook oOutlook Set oMailItem = oOutlook.CreateItem(0) 'création de l'email With oMailItem .To = Destinataire .Subject = Sujet 'CHOIX DU FORMAT '---------------------- 'email formaté comme texte .BodyFormat = olFormatRichText .Body = Body 'OU 'email formaté comme HTML '.BodyFormat = olFormatHTML '.HTMLBody = "<html><p>" & Body & "</p></html>" '---------------------- If PieceJointe <> "" Then .Attachments.Add PieceJointe .Display '<- affiche l'email (si vous ne voulez pas l'afficher, mettez cette ligne en commentaire) .Save '<- sauvegarde l'email avant l'envoi (pour ne pas le sauvegarder, mettez cette ligne en commentaire) .Send '<- envoie l'email (si vous voulez seulement préparer l'email et l'envoyer manuellement, mettez cette ligne en commentaire) End With 'nettoyage... If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing Exit Sub EnvoyerEmailErreur: If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing MsgBox "Le mail n'a pas pu être envoyé...", vbCritical, "Erreur" End Sub Private Sub PreparerOutlook(ByRef oOutlook As Object) 'par Excel-Malin.com ( https://excel-malin.com ) '------------------------------------------------------------------------------------------------ 'Ce code vérifie si Outlook est prêt à envoyer des emails... Et s'il ne l'est pas, il le prépare. '------------------------------------------------------------------------------------------------ On Error GoTo PreparerOutlookErreur On Error Resume Next 'vérification si Outlook est ouvert Set oOutlook = GetObject(, "Outlook.Application") If (Err.Number <> 0) Then 'si Outlook n'est pas ouvert, une instance est ouverte Err.Clear Set oOutlook = CreateObject("Outlook.Application") Else 'si Outlook est ouvert, l'instance existante est utilisée Set oOutlook = GetObject("Outlook.Application") oOutlook.Visible = True End If Exit Sub PreparerOutlookErreur: MsgBox "Une erreur est survenue lors de l'exécution de PreparerOutlook()..." End Sub
Pour ta macro enregistrer sous. Je n'ai absolument rien compris de ce que tu veux. Désolé.