Bonsoir, Merci beaucoup pour ce tutoriel rapide et très bien expliqué, j'ai adoré ! Grace a vos explications je vais pouvoir répondre aux besoins d'un de mes clients. Je pensais que c’était très complexe d'envoyer un mail avec pièce jointe en VBA mais je me trompais puisque c'est très simple (a condition de connaitre les bonnes fonctions évidemment).
Bonsoir, j'ai testé de mettre en pratique votre vidéo mais à priori la ligne Create.Object("Outlook.Application") lui pose problème. Il sort une erreur de compilation de type "projet ou bibliothèque introuvable". Pouvez vous s'il vous plait me donner une piste sur ce qui cloche ? Je vous remercie par avance
Bonjour Romuald, Merci pour ce tutoriel qui m'a été très utile. Par-contre, j'aimerais juste savoir si on peut insérer un corps de mail dans la première macro ?
Merci pour votre réponse. Cependant, en essayant la première méthode, j'obtiens un mail avec la piéce jointe mais il ne s'envoie pas automatiquement. Pouvez-vous m'eclairer afin que je l'envoie sans avoir à cliquer sur "Envoyer"? Je précise que j'utilise Lotus Notes en messagerie et non Outlook.
Bonjour, un immense merci pour ce tuto excellent !!! bravo une question: si on veut envoyer la Pièce jointe + le Classeur , c'est possible ? merci et bonne fin de journée jérôme
Bonjour, à ce moment là il vaut mieux utiliser un logiciel d'emails comme outlook il ne faut pas oublier qu'excel est fait pour la création de tableaux ;-)
Bonjour Romuald, Merci pour tes renseignements. Ci-joint tu trouveras une base de données pour envoyer des fichiers via des adresses mails. Cela marche très bien mais lorsque je clique sur un bouton (macro), il envoie le fichier à TOUS LES DESTINAIRES MAIL repris dans la colonne mail. Ce que je souhaiterais, est que lorsque je sélectionne le document à envoyer, celui-ci parvienne au dernier destinataire(MAIL) introduit de la colonne. Lorque j'introduirai une nouvelle ligne, c'est celle là(MAIL) que je veux et plus les autres etc.... Le (BOUTON MACRO) se situe dans la Sheet 4 et ma colonne mail se trouve dans le Sheet6 en J6 (onglet intitulé fournisseur). Pour info, le tableau est nommé Table3. Dans la programmation qui suit, serait-il possible de m'y intégrer les formules nécessaires au fonctionnement et me renvoyer l'entièreté de la programmation avec les modifs insérées. VOICI LA PROGRAMMATION: Option Explicit Sub EnvoiMail() Dim ListeDest() Dim ListeComment() Dim ListeRio() Dim ListeNom() Dim i As Long Dim oMsgApp As Object Dim oMsg As Object Dim sListeDest As String Dim sFichier As String sFichier = Application.GetOpenFilename(, , "Veuillez sélectionner le bon de commande de matériel à envoyer SVP !") If sFichier = "" Then MsgBox "Aucun fichier sélectionné, opération annulée" Exit Sub End If Set oMsgApp = CreateObject("Outlook.Application") ListeDest() = Range("Table3[Mail]") ListeComment() = Range("Table3[Event]") ListeRio() = Range("Table3[RIO]") ListeNom() = Range("Table3[Nom]") For i = LBound(ListeDest, 1) To UBound(ListeDest, 1) Set oMsg = oMsgApp.CreateItem(0) With oMsg .To = ListeDest(i, 1) .Attachments.ADD sFichier .Subject = "Votre bon de commande de matériel: Référence CGC/RIO -" & ListeRio(i, 1) & _ " - " & "Référence à reprendre sur toutes vos correspondances." .Body = "Bonjour" & " " & ListeNom(i, 1) & Chr(10) & Chr(13) & "Veuillez trouver ci-joint le bon de commande pour votre événement:" & Chr(10) & Chr(13) & _ ListeComment(i, 1) & Chr(10) & Chr(13) & "Bonne journée et vif succès avec votre événement !" & Chr(10) & Chr(13) & _ "Direction de la communication - CGC" & Chr(10) & Chr(13) & "Desk Event" .Send End With Set oMsg = Nothing Next oMsgApp.Quit Set oMsgApp = Nothing MsgBox "Votre mail a bien été envoyé" End Sub Belle journée et merci d'avance, Marc.
Bonjour, il faut d'abord faire une boucle de toute la bdd pour connaitre le n° de la derniere ligne (celle où se trouve le dernier enregistrement) ensuite on envoie le mail si on est sur le bon n° de ligne ou si le nom correspond à ceclui de notre mail.
Bonjour Romuald, très bien fait. J'aurais voulu savoir si c'est possible si le destinataire pourrais faire des rajouts sur la feuille envoyée et me renvoyer également avec un bouton VBa, si tu vois ce dont je veux dire (échange de fichier)......Merci de ta réponse, Chris
Bonjour, à partir du moment où c'est un fichier excel qu'on envoi le destinataire peut le modifier et le renvoyer ce n'est pas le cas s'il on enregistre le fichier en pdf.
Bonjour Romuald, Merci pour tes renseignements. Ci-joint tu trouveras une base de données pour envoyer des fichiers via des adresses mails. Cela marche très bien mais lorsque je clique sur un bouton (macro), il envoie tous le fichier à TOUS LES DESTINAIRES MAIL repris dans la colonne mail. Ce que je souhaiterais, est que lorsque je sélectionne le document à envoyer, celui-ci parvienne au dernier destinataire introduit de la colonne. Lorque j'introduirai une nouvelle ligne, c'est celle là que je veux et plus les autres etc.... Le (BOUTON MACRO) se situe dans la Sheet 4 et ma colonne mail se trouve dans le Sheet6 en J6 (onglet intitulé fournisseur). Pour info, le tableau est nommé Table3. Dans la programmation qui suit, serait-il possible de m'y intégrer les formules nécessaires au fonctionnement et me renvoyer l'entièreté de la programmation avec les modifs insérées. VOICI LA PROGRAMMATION: Option Explicit Sub EnvoiMail() Dim ListeDest() Dim ListeComment() Dim ListeRio() Dim ListeNom() Dim i As Long Dim oMsgApp As Object Dim oMsg As Object Dim sListeDest As String Dim sFichier As String sFichier = Application.GetOpenFilename(, , "Veuillez sélectionner le bon de commande de matériel à envoyer SVP !") If sFichier = "" Then MsgBox "Aucun fichier sélectionné, opération annulée" Exit Sub End If Set oMsgApp = CreateObject("Outlook.Application") ListeDest() = Range("Table3[Mail]") ListeComment() = Range("Table3[Event]") ListeRio() = Range("Table3[RIO]") ListeNom() = Range("Table3[Nom]") For i = LBound(ListeDest, 1) To UBound(ListeDest, 1) Set oMsg = oMsgApp.CreateItem(0) With oMsg .To = ListeDest(i, 1) .Attachments.ADD sFichier .Subject = "Votre bon de commande de matériel: Référence CGC/RIO -" & ListeRio(i, 1) & _ " - " & "Référence à reprendre sur toutes vos correspondances." .Body = "Bonjour" & " " & ListeNom(i, 1) & Chr(10) & Chr(13) & "Veuillez trouver ci-joint le bon de commande pour votre événement:" & Chr(10) & Chr(13) & _ ListeComment(i, 1) & Chr(10) & Chr(13) & "Bonne journée et vif succès avec votre événement !" & Chr(10) & Chr(13) & _ "Direction de la communication - CGC" & Chr(10) & Chr(13) & "Desk Event" .Send End With Set oMsg = Nothing Next oMsgApp.Quit Set oMsgApp = Nothing MsgBox "Votre mail a bien été envoyé" End Sub Belle journée, Marc.
Bonjour, Merci pour cette vidéo. Enfin une macro qui fonctionne correctement ! Et avec des explications claires ! Pouvez vous me dire quel code mettre pour ajouter la signature Outlook svp ? J'ai essayé pleins de code trouvés sur internet mais aucun fonctionne. La signature se trouve (C:\Users\Alexis\AppData\Roaming\Microsoft\Signatures\Logo&Texte.htm"). Merci d'avance
Bonjour Alexis, le plus simple est sans doute de copier votre signature d'outlook, d'aller à la 17ème minute et 40 secondes de la vidéo et après contenu = contenu & "Ci-joint votre document" vous ajoutez immédiatement en dessous : contenu = contenu & "votre signature outlook" Voila, vous ne touchez pas au reste.
Bonjour, félicitation pour ce tuto parfait. Pourriez vou sme dire comment d'une part, avoir tout d'abord accès au mail avant envoi sur le premier module (si on veut en modifier le corps), et d'autre part, comment ne pas envoyer le classeur excel, mais sa conversion en pdf. Par avance merci. cordialement
Bonjour, pour pouvoir modifier le corps du mail avant envoi, le mieux serait sans doute de créer un formulaire pré-rempli permettant la modification. Avec cette vidéo vous savez comment envoyer une pièce jointe dans un email, voici comment convertir un classeur Excel en PDF : ruclips.net/video/IRyCTcBVpO4/видео.html
Bonsoir a vous s'il vous plait dans le module envoyer mail+pj est ce qu'on peux rajouter plusieurs adresse comme dans le module envoyer ce classeur ? Merci et bon fin de soirée
Bonjour Romuald, Merci pour ce tuto. Cela fonctionne super bien. Je souhaiterais apporter des données suppléméntaires. En fait, je souhaiterais récupérer des adresses mails et noms des événements qui se trouvent dans le même fichier, mais dans des sheets différents. (ex: toutes mes adresses mail se trouvent sur le sheet (6) en J6 et les événements sur le sheet (6) en O6. Pouvez-vous m'aider sur l'écriture et où l'insérer dans votre programmation VBA. Je cherche, mais je n'y arrive pas. Merci d'avance. Au plaisir Marc.
Bonjour, vous pouvez mettre vos données supplémentaires dans des variables ex : adMail = sheets(6).range("J6").value et evenments = sheets(6).range("O6").value et ensuite vous ajoutez ces valeurs à "contenu" (voir à 17'40" de la vidéo) genre : contenu = contenu & adMail & chr(10) & chr(13) contenu = contenu & evenments & chr(10) & chr(13)
C'est prodigieux, très intéressant d'envoyer un classeur Excel par mail. C'est très clair ce que vous avez fait. J'avais fait la même chose mais ça n'a pas marché. Je vais encore réessayer pour voir.
Bonsoir, Apres avoir vu votre tuto sur l'envoi d'un mail est ce possible d'envoyer un onglet faisant parti d'un dossier (style planning mensuel ) merci d'avance de votre reponse bonne soiree, cordialement, Thierry
bonjour, oui, tout à fait Thierry ! voici une petite macro de derrière les fagots: Sub envoiOnglet() 'ENVOI 1 ONGLET A PLUSIEURS DESTINATAIRES destinataires = Array("contact@up1.fr", "addr2@gmail.com") Application.DisplayAlerts = False 'ON OUVRE LE CLASSEUR Où SE TROUVE L'ONGLET A ENVOYER Workbooks.Open ThisWorkbook.Path & "\classeurOK.xlsm" For Each nom In destinataires 'SELECTIONNE L'ONGLET A ENVOYER Workbooks("classeurOK.xlsm").Sheets("Personnel").Copy 'ENVOI DU MAIL ActiveWorkbook.SendMail Recipients:=nom, _ Subject:="Test envoi classeur " & ActiveWorkbook.Name, _ ReturnReceipt:=False Workbooks("classeurOK.xlsm").close Next Application.DisplayAlerts = True End Sub
Bonjour Romuald, Je te remercie pour cette vidéo. J'essaie d'envoyer à un destinataire plusieurs feuilles d'un même classeur mais n'y arrive. Quelle solutions peux tu m'apporter en conservant le contenu de ton code ? Merci par avance de ta réponse.
+FOURNY Laurent Bonjour Laurent, le code envoi toutes les feuilles du classeur d'office. Si tu veux n'en envoyer que certaines, enregistre ton classeur "sous" un autre nom avec les seules feuilles que tu souhaites envoyer et sélectionne ce classeur là pour l'envoi. Romuald
Bonjour.Merci pour ce tuto génial.J'ai un tableau qui comporte plusieurs infos dans ces infos il y a une colonne qui contient les adresses mail des personnes.Ma question, est 'il possible qu'il prend automatiquement les mails dans le tableau, et de faire soit envoyer à tous ou envoyer a certaine personne? comment pouvons nous faire cela?bien à vousvincent
bonjour Vincent, oui, le programme le fait déjà dans cette vidéo, il faut parcourir la liste des emails dans une boucle par exemple et envoyer l'email dans une condition.
Bonsoir Romuald, merci de ta réponse. En fait je voudrais envoyer un mail avec en pièce jointe une feuille du classeur affecté à une adresse mail. J'ai 15 feuilles et 15 adresses est-ce possible ? merci à toi. bonne soirée gael
+Gaël Lenoir re Gaël, il faut faire une boucle qui à chaque tour envoi au destinataire actuel l'onglet qui lui correspond. il y a des tas de façons de faire ex: ta boucle parcours chaque onglet et à chaque onglet tu as glissé le mail concerné en range("XFD1") tu envoi le mail ayant pour valeur range("XFD1").value et la boucle s’arrête après le dernier onglet.
Bonjour, Merci pour cette presentation. J'aurai 2 questions : 1) Comment faire pour garder la meme structure mais envoyer PLUSIEURS pieces jointe dans le mail ? 2) Est il possible d'afficher le mail avant de l'envoyer ? Merci
Bonjour, 1 - remplacer la ligne getopenfilename..... par Fichier = Application.GetOpenFilename("Fichiers Texte (*.*),*.*,Tous les fichiers (*.*),*.* ", 1, "Sélectionnez le ou les fichiers des écritures à importer", , True) 2- remplacez If Fichier = False Then par If IsArray(Fichier) = False Then 3 - remplacez MonMessage.Attachments.Add Fichier par For i = 1 To UBound(Fichier) MonMessage.Attachments.Add Fichier(i) Next that's all folks !
Bonsoir Romuald, Déjà un grand merci de me répondre. Voila, j'ai fais un dossier pour envoyer hebdomadairement des résultats de pétanques et deux des adresses courriels sont toujours identiques mais la troisième adresse change chaque semaine, Cette adresse se retrouve chaque semaine sur une feuille dénommée Feuille de Match à l'emplacement "H50" et c'est cette feuille que j'envoie. Bonne journée. suite avec la macro.
bonjour, voici 'Sub envoiClasseur() 'Envoi du classeur actif par mail, à plusieurs destinataires. destinataires = Array("1erEmail@gmail.com", "2emeEmail@gmail.com", sheets("Feuille de Match").range("H50").value ) ActiveWorkbook.SendMail Recipients:=destinataires, _ Subject:="Classeur en cours " & ActiveWorkbook.Name, ReturnReceipt:=False ' Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro, 'End Sub
Bonjour Romuald, Peux-tu m’écrire le modèle? car je n'y connais rien en programmation et j'ai juste recopier ce que tu fais dans ta vidéo. Je sais pas ce que sais une boucle. Je suis nul en programmation mais j'essaye un petit peu. merci à toi gael
+Gaël Lenoir bonjour Gaël, si tu n'as pas un minimum de connaissance tu n'y arriveras pas, un copier coller ne résout pas tous les problèmes. Un tutoriel s'adresse à des gens ayant de bonnes bases et voulant évoluer, pas à des novices. Quand on débute, on prend des cours, et ça coûte des sous parce que l'éducation nationale gratuite est loin d'être au niveau. C'est pour ça que j'ai du travail.
Salut, J'ai très apprécié ton Tuto, mais j'aimerais savoir s'il possible d'envoyer un email a des personnes en choisissant un courriel à chaque fois et aussi envoyer non pas le classeur mais juste la feuille de travail sur laquelle on est. Je m'explique, vu que je suis gestionnaire dans une compagnie et que je dois envoyer à mes gars leur horaire qui se trouve sur une première feuille générale, et dans la deuxième un Template plus individuelle que j'aimerais envoyer à chaque gars , est ce que c'est possible ? Cordialement,
OK cool est ce qu'il serait possible que tu me guide un peu pour l'envoie individuel des emails en choisissant le destinataire svp :) ? Et BTW Merci pour ta réponse rapide
Bonjour Romuald, je viens de jeter un œil sur le UP1.fr. Les échanges de qualités que nous avons eu et la démonstration par la vidéo ou je vois bien que vous connaissez bien le sujet me rassure. Alors voila, j'ai 50 ans et j'aime bien Excel. je suis Agent de Maîtrise Principal dans la fonction Publique Hospitalière. Je gère des transports de patients avec une régulation d'un coté et des brancardiers de l'autres. Dans mon travail j'ai construis l'outil informatique de la régulation moi même faute de logiciel spécialisé (trop chère) j'essaye de trouver des solutions pour aider mes régulateurs et les soulager dans le quotidien. J'utilise quelques fonctions avancée. J'ai bien envie d'essayer d'apprendre le VBA mais à mon age ? est-ce trop tard? Comment cela se passe? quel prix? le lieu de l’école ? en CFP OU formation continue ? Même perso s'il faut et si pas trop cherre. dans l'attente, bonne journée, gael
+Gaël Lenoir Bonjour Gaël, On nous dit qu'il faut travailler jusqu'à 65 ans, voire plus alors si on est fichu à 50 ans comment fait-on ??? ;-) Rassurez-vous 50 ans c'est le bel age ! Les formations que je dispense sont reconnues par l'Etat et à ce titre elles sont généralement financées à 100% Je vous propose de me contacter via mon site web où vous trouverez un formulaire, cliquez sur "Voir une autre page" puis sur "Contactez-nous" indiquez moi votre n° de téléphone et l'heure à laquelle je peux vous joindre. Mon site: www.up1.fr cordialement, Romuald
Bonjour, J'ai un problème avec cette ligne: Set MonMessage = MaMessagerie.CreateItem(0) Erreur d’exécution "91": Variable objet ou variable de bloc With non définie
bonjour , Cette ligne a un probleme et je ne voie pas se que sais :Set MaMessagerie = CreateObject("Outlook.Application") Sub envoiMail() Dim Fichier As Variant Fichier = Application.GetOpenFilename("Tous les Fichiers(*.*),*.*") MsgBox Fichier Dim MaMessagerie As Object Dim MonMessage As Object Set MaMessagerie = CreateObject("Outlook.Application") Set MonMessage = MaMessagerie.createitem(0) MonMessage.To = "inter-bmo-2020@outlook.fr" MonMessage.Attachements.Add Fichier MonMessage.Suject = " Test d'envoi" contenu = "Bonjour" contenu = contenu & Chr(10) & Chr(13) contenu = contenu & "Ci-joint votre document." MonMessage.Body = contenu MonMessage.Send Set MaMessagerie = Nothing End Sub
Superbe vidéo, elle date de longtemps. Je l'essaierais en 2022, j'ose espérer que ça passera. C'est exactement la solution à mon problème
Bonsoir,
Merci beaucoup pour ce tutoriel rapide et très bien expliqué, j'ai adoré !
Grace a vos explications je vais pouvoir répondre aux besoins d'un de mes clients.
Je pensais que c’était très complexe d'envoyer un mail avec pièce jointe en VBA mais je me trompais puisque c'est très simple (a condition de connaitre les bonnes fonctions évidemment).
Bonsoir, j'ai testé de mettre en pratique votre vidéo mais à priori la ligne Create.Object("Outlook.Application") lui pose problème. Il sort une erreur de compilation de type "projet ou bibliothèque introuvable".
Pouvez vous s'il vous plait me donner une piste sur ce qui cloche ? Je vous remercie par avance
Désolé oubliez ce que j'ai dit la solution a mon problème est dans votre vidéo... je suis un boulet.
J'ai eu besoin de cette fonction et j'ai cherché un bon moment, si j'avais vu cette video plus tot ... !
je comprends,
merci quand même. bonne journée
gael
Merci bcp
Excellent, pas à pas ça marche
merci Bcp pour ce tuto.
Merci beaucoup
Bonjour Romuald,
Merci pour ce tutoriel qui m'a été très utile.
Par-contre, j'aimerais juste savoir si on peut insérer un corps de mail dans la première macro ?
Bonsoir Haitam,
non pour mettre un contenu de mail, utilisez la deuxième technique expliquée dans cette vidéo.
cdlt
@@RomualdCorreze Merci pour ta réponse rapide ! Sinon ça a marché avec la deuxième macro. Merci pour le partage de l'information.
Bonjour Romuald, très utile votre vidéo. A tout hasard, auriez-vous la même méthode pour ceux qui utilisent LOTUS NOTES? MErci
Merci Chérif.
hélas non, je ne fais qu'avec Windows et Excel
Merci pour votre réponse. Cependant, en essayant la première méthode, j'obtiens un mail avec la piéce jointe mais il ne s'envoie pas automatiquement. Pouvez-vous m'eclairer afin que je l'envoie sans avoir à cliquer sur "Envoyer"? Je précise que j'utilise Lotus Notes en messagerie et non Outlook.
ok,
c'est fait, merci
gael
Bonjour,
un immense merci pour ce tuto excellent !!! bravo
une question: si on veut envoyer la Pièce jointe + le Classeur , c'est possible ?
merci et bonne fin de journée
jérôme
Bonjour,
à ce moment là il vaut mieux utiliser un logiciel d'emails comme outlook
il ne faut pas oublier qu'excel est fait pour la création de tableaux ;-)
@@RomualdCorreze merci. C'est effectivement logique 😁.
Merci
Bonjour Romuald,
Merci pour tes renseignements. Ci-joint tu trouveras une base de données pour envoyer des fichiers via des adresses mails. Cela marche très bien mais lorsque je clique sur un bouton (macro), il envoie le fichier à TOUS LES DESTINAIRES MAIL repris dans la colonne mail. Ce que je souhaiterais, est que lorsque je sélectionne le document à envoyer, celui-ci parvienne au dernier destinataire(MAIL) introduit de la colonne. Lorque j'introduirai une nouvelle ligne, c'est celle là(MAIL) que je veux et plus les autres etc.... Le (BOUTON MACRO) se situe dans la Sheet 4 et ma colonne mail se trouve dans le Sheet6 en J6 (onglet intitulé fournisseur). Pour info, le tableau est nommé Table3. Dans la programmation qui suit, serait-il possible de m'y intégrer les formules nécessaires au fonctionnement et me renvoyer l'entièreté de la programmation avec les modifs insérées.
VOICI LA PROGRAMMATION:
Option Explicit
Sub EnvoiMail()
Dim ListeDest()
Dim ListeComment()
Dim ListeRio()
Dim ListeNom()
Dim i As Long
Dim oMsgApp As Object
Dim oMsg As Object
Dim sListeDest As String
Dim sFichier As String
sFichier = Application.GetOpenFilename(, , "Veuillez sélectionner le bon de commande de matériel à envoyer SVP !") If sFichier = "" Then MsgBox "Aucun fichier sélectionné, opération annulée"
Exit Sub
End If
Set oMsgApp = CreateObject("Outlook.Application")
ListeDest() = Range("Table3[Mail]")
ListeComment() = Range("Table3[Event]")
ListeRio() = Range("Table3[RIO]")
ListeNom() = Range("Table3[Nom]")
For i = LBound(ListeDest, 1) To UBound(ListeDest, 1)
Set oMsg = oMsgApp.CreateItem(0)
With oMsg
.To = ListeDest(i, 1) .Attachments.ADD sFichier
.Subject = "Votre bon de commande de matériel: Référence CGC/RIO -" & ListeRio(i, 1) & _ " - " & "Référence à reprendre sur toutes vos correspondances."
.Body = "Bonjour" & " " & ListeNom(i, 1) & Chr(10) & Chr(13) & "Veuillez trouver ci-joint le bon de commande pour votre événement:" & Chr(10) & Chr(13) & _ ListeComment(i, 1) & Chr(10) & Chr(13) & "Bonne journée et vif succès avec votre événement !" & Chr(10) & Chr(13) & _ "Direction de la communication - CGC" & Chr(10) & Chr(13) & "Desk Event"
.Send
End With
Set oMsg = Nothing
Next oMsgApp.Quit
Set oMsgApp = Nothing
MsgBox "Votre mail a bien été envoyé"
End Sub
Belle journée et merci d'avance, Marc.
Bonjour,
il faut d'abord faire une boucle de toute la bdd pour connaitre le n° de la derniere ligne (celle où se trouve le dernier enregistrement) ensuite on envoie le mail si on est sur le bon n° de ligne ou si le nom correspond à ceclui de notre mail.
Bonjour Romuald, très bien fait. J'aurais voulu savoir si c'est possible si le destinataire pourrais faire des rajouts sur la feuille envoyée et me renvoyer également avec un bouton VBa, si tu vois ce dont je veux dire (échange de fichier)......Merci de ta réponse, Chris
Bonjour,
à partir du moment où c'est un fichier excel qu'on envoi
le destinataire peut le modifier et le renvoyer
ce n'est pas le cas s'il on enregistre le fichier en pdf.
Bonjour,
Super tuto.
J’aimerais envoyer qu’une feuille du classeur par mail, possible d’avoir une video tuto car j’arrive pas à l’exécuter. Merci
Bonjour et merci,
il suffit de supprimer les autres feuilles de calcul et d'envoyer par email.
bien sur ne pas enregistrer ;-)
Bonjour Romuald,
Merci pour tes renseignements.
Ci-joint tu trouveras une base de données pour envoyer des fichiers via des adresses mails. Cela marche très bien mais lorsque je clique sur un bouton (macro), il envoie tous le fichier à TOUS LES DESTINAIRES MAIL repris dans la colonne mail. Ce que je souhaiterais, est que lorsque je sélectionne le document à envoyer, celui-ci parvienne au dernier destinataire introduit de la colonne. Lorque j'introduirai une nouvelle ligne, c'est celle là que je veux et plus les autres etc....
Le (BOUTON MACRO) se situe dans la Sheet 4 et ma colonne mail se trouve dans le Sheet6 en J6 (onglet intitulé fournisseur). Pour info, le tableau est nommé Table3.
Dans la programmation qui suit, serait-il possible de m'y intégrer les formules nécessaires au fonctionnement et me renvoyer l'entièreté de la programmation avec les modifs insérées.
VOICI LA PROGRAMMATION:
Option Explicit
Sub EnvoiMail()
Dim ListeDest()
Dim ListeComment()
Dim ListeRio()
Dim ListeNom()
Dim i As Long
Dim oMsgApp As Object
Dim oMsg As Object
Dim sListeDest As String
Dim sFichier As String
sFichier = Application.GetOpenFilename(, , "Veuillez sélectionner le bon de commande de matériel à envoyer SVP !")
If sFichier = "" Then
MsgBox "Aucun fichier sélectionné, opération annulée"
Exit Sub
End If
Set oMsgApp = CreateObject("Outlook.Application")
ListeDest() = Range("Table3[Mail]")
ListeComment() = Range("Table3[Event]")
ListeRio() = Range("Table3[RIO]")
ListeNom() = Range("Table3[Nom]")
For i = LBound(ListeDest, 1) To UBound(ListeDest, 1)
Set oMsg = oMsgApp.CreateItem(0)
With oMsg
.To = ListeDest(i, 1)
.Attachments.ADD sFichier
.Subject = "Votre bon de commande de matériel: Référence CGC/RIO -" & ListeRio(i, 1) & _
" - " & "Référence à reprendre sur toutes vos correspondances."
.Body = "Bonjour" & " " & ListeNom(i, 1) & Chr(10) & Chr(13) & "Veuillez trouver ci-joint le bon de commande pour votre événement:" & Chr(10) & Chr(13) & _
ListeComment(i, 1) & Chr(10) & Chr(13) & "Bonne journée et vif succès avec votre événement !" & Chr(10) & Chr(13) & _
"Direction de la communication - CGC" & Chr(10) & Chr(13) & "Desk Event"
.Send
End With
Set oMsg = Nothing
Next
oMsgApp.Quit
Set oMsgApp = Nothing
MsgBox "Votre mail a bien été envoyé"
End Sub
Belle journée,
Marc.
Bonjour,
Merci pour cette vidéo. Enfin une macro qui fonctionne correctement ! Et avec des explications claires ! Pouvez vous me dire quel code mettre pour ajouter la signature Outlook svp ? J'ai essayé pleins de code trouvés sur internet mais aucun fonctionne.
La signature se trouve (C:\Users\Alexis\AppData\Roaming\Microsoft\Signatures\Logo&Texte.htm"). Merci d'avance
Bonjour Alexis,
le plus simple est sans doute de copier votre signature d'outlook,
d'aller à la 17ème minute et 40 secondes de la vidéo et
après contenu = contenu & "Ci-joint votre document"
vous ajoutez immédiatement en dessous :
contenu = contenu & "votre signature outlook"
Voila, vous ne touchez pas au reste.
merci, si on veux envoyer par gmail, quelles doivent etre les modifications ?
vous devez paramétrer votre compte gmail sur Outlook, simplement
Bonjour,
félicitation pour ce tuto parfait. Pourriez vou sme dire comment d'une part, avoir tout d'abord accès au mail avant envoi sur le premier module (si on veut en modifier le corps), et d'autre part, comment ne pas envoyer le classeur excel, mais sa conversion en pdf.
Par avance merci.
cordialement
Bonjour, pour pouvoir modifier le corps du mail avant envoi, le mieux serait sans doute de créer un formulaire pré-rempli permettant la modification.
Avec cette vidéo vous savez comment envoyer une pièce jointe dans un email, voici comment convertir un classeur Excel en PDF : ruclips.net/video/IRyCTcBVpO4/видео.html
Bjr Romuald, le code première méthode n est pas prise en compte sur mac (les : avant = / , apres Name...) MERCI À TOI
Comment envoyer une seule feuille du classeur par mail
Merci
Bonsoir a vous s'il vous plait dans le module envoyer mail+pj est ce qu'on peux rajouter plusieurs adresse comme dans le module envoyer ce classeur ? Merci et bon fin de soirée
Oui c'est possible, en faisant une boucle par exemple
Bonjour Romuald,
Merci pour ce tuto. Cela fonctionne super bien.
Je souhaiterais apporter des données suppléméntaires. En fait, je souhaiterais récupérer des adresses mails et noms des événements qui se trouvent dans le même fichier, mais dans des sheets différents. (ex: toutes mes adresses mail se trouvent sur le sheet (6) en J6 et les événements sur le sheet (6) en O6.
Pouvez-vous m'aider sur l'écriture et où l'insérer dans votre programmation VBA.
Je cherche, mais je n'y arrive pas.
Merci d'avance.
Au plaisir
Marc.
Bonjour,
vous pouvez mettre vos données supplémentaires dans des variables ex : adMail = sheets(6).range("J6").value et evenments = sheets(6).range("O6").value
et ensuite vous ajoutez ces valeurs à "contenu" (voir à 17'40" de la vidéo)
genre :
contenu = contenu & adMail & chr(10) & chr(13)
contenu = contenu & evenments & chr(10) & chr(13)
C'est très intéressant j'ai beaucoup apprécié mais ça n'a pas marché.
essayez donc de reprendre votre code avec la vidéo, pas à pas.
Parfois la moindre erreur, un virgule, un point, empêche tout fonctionnement
C'est prodigieux, très intéressant d'envoyer un classeur Excel par mail. C'est très clair ce que vous avez fait. J'avais fait la même chose mais ça n'a pas marché. Je vais encore réessayer pour voir.
Bonsoir,
Apres avoir vu votre tuto sur l'envoi d'un mail
est ce possible d'envoyer un onglet faisant parti d'un dossier (style planning mensuel )
merci d'avance de votre reponse
bonne soiree,
cordialement,
Thierry
bonjour,
oui, tout à fait Thierry !
voici une petite macro de derrière les fagots:
Sub envoiOnglet()
'ENVOI 1 ONGLET A PLUSIEURS DESTINATAIRES
destinataires = Array("contact@up1.fr", "addr2@gmail.com")
Application.DisplayAlerts = False
'ON OUVRE LE CLASSEUR Où SE TROUVE L'ONGLET A ENVOYER
Workbooks.Open ThisWorkbook.Path & "\classeurOK.xlsm"
For Each nom In destinataires
'SELECTIONNE L'ONGLET A ENVOYER
Workbooks("classeurOK.xlsm").Sheets("Personnel").Copy
'ENVOI DU MAIL
ActiveWorkbook.SendMail Recipients:=nom, _
Subject:="Test envoi classeur " & ActiveWorkbook.Name, _
ReturnReceipt:=False
Workbooks("classeurOK.xlsm").close
Next
Application.DisplayAlerts = True
End Sub
MERCI BEAUCOUP
JE VAIS ESSAYER DEMAIN DE METTRE CELA EN PLACE
VOUS INFORME DE MON RESULTAT
CDLT,
THIERRY
Bonjour Romuald,
Je te remercie pour cette vidéo. J'essaie d'envoyer à un destinataire plusieurs feuilles d'un même classeur mais n'y arrive. Quelle solutions peux tu m'apporter en conservant le contenu de ton code ?
Merci par avance de ta réponse.
+FOURNY Laurent Bonjour Laurent, le code envoi toutes les feuilles du classeur d'office.
Si tu veux n'en envoyer que certaines, enregistre ton classeur "sous" un autre nom avec les seules feuilles que tu souhaites envoyer et sélectionne ce classeur là pour l'envoi.
Romuald
Bonjour.Merci pour ce tuto génial.J'ai un tableau qui comporte plusieurs infos dans ces infos il y a une colonne qui contient les adresses mail des personnes.Ma question, est 'il possible qu'il prend automatiquement les mails dans le tableau, et de faire soit envoyer à tous ou envoyer a certaine personne? comment pouvons nous faire cela?bien à vousvincent
bonjour Vincent,
oui, le programme le fait déjà dans cette vidéo, il faut parcourir la liste des emails dans une boucle par exemple et envoyer l'email dans une condition.
Bonsoir Romuald,
merci de ta réponse. En fait je voudrais envoyer un mail avec en pièce jointe une feuille du classeur affecté à une adresse mail. J'ai 15 feuilles et 15 adresses est-ce possible ?
merci à toi.
bonne soirée
gael
+Gaël Lenoir re Gaël, il faut faire une boucle qui à chaque tour envoi au destinataire actuel l'onglet qui lui correspond. il y a des tas de façons de faire ex:
ta boucle parcours chaque onglet et à chaque onglet tu as glissé le mail concerné en range("XFD1")
tu envoi le mail ayant pour valeur range("XFD1").value
et la boucle s’arrête après le dernier onglet.
Bonjour,
Merci pour cette presentation. J'aurai 2 questions :
1) Comment faire pour garder la meme structure mais envoyer PLUSIEURS pieces jointe dans le mail ?
2) Est il possible d'afficher le mail avant de l'envoyer ?
Merci
Bonjour,
1 - remplacer la ligne getopenfilename..... par
Fichier = Application.GetOpenFilename("Fichiers Texte (*.*),*.*,Tous les fichiers (*.*),*.* ", 1, "Sélectionnez le ou les fichiers des écritures à importer", , True)
2- remplacez If Fichier = False Then par
If IsArray(Fichier) = False Then
3 - remplacez MonMessage.Attachments.Add Fichier par
For i = 1 To UBound(Fichier)
MonMessage.Attachments.Add Fichier(i)
Next
that's all folks !
Bonsoir Romuald,
Déjà un grand merci de me répondre.
Voila, j'ai fais un dossier pour envoyer hebdomadairement des résultats de pétanques et deux des adresses courriels sont toujours identiques
mais la troisième adresse change chaque semaine, Cette adresse se retrouve chaque semaine sur une feuille dénommée Feuille de Match à l'emplacement "H50" et c'est cette feuille que j'envoie.
Bonne journée. suite avec la macro.
bonjour,
voici
'Sub envoiClasseur()
'Envoi du classeur actif par mail, à plusieurs destinataires.
destinataires = Array("1erEmail@gmail.com", "2emeEmail@gmail.com", sheets("Feuille de Match").range("H50").value
)
ActiveWorkbook.SendMail Recipients:=destinataires, _
Subject:="Classeur en cours " & ActiveWorkbook.Name, ReturnReceipt:=False
' Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
'End Sub
comment sauvegarder les facture les stoker et les ouvrir quand en a besoin merci
+Abdou Zenasni voir ce tuto : ruclips.net/video/m_9GaHCK4c4/видео.html
Bonjour Romuald,
Peux-tu m’écrire le modèle? car je n'y connais rien en programmation et j'ai juste recopier ce que tu fais dans ta vidéo. Je sais pas ce que sais une boucle. Je suis nul en programmation mais j'essaye un petit peu.
merci à toi
gael
+Gaël Lenoir bonjour Gaël, si tu n'as pas un minimum de connaissance tu n'y arriveras pas, un copier coller ne résout pas tous les problèmes. Un tutoriel s'adresse à des gens ayant de bonnes bases et voulant évoluer, pas à des novices.
Quand on débute, on prend des cours, et ça coûte des sous parce que l'éducation nationale gratuite est loin d'être au niveau.
C'est pour ça que j'ai du travail.
Salut,
J'ai très apprécié ton Tuto, mais j'aimerais savoir s'il possible d'envoyer un email a des personnes en choisissant un courriel à chaque fois et aussi envoyer non pas le classeur mais juste la feuille de travail sur laquelle on est.
Je m'explique, vu que je suis gestionnaire dans une compagnie et que je dois envoyer à mes gars leur horaire qui se trouve sur une première feuille générale, et dans la deuxième un Template plus individuelle que j'aimerais envoyer à chaque gars , est ce que c'est possible ?
Cordialement,
bonjour,
oui c'est possible.
OK cool est ce qu'il serait possible que tu me guide un peu pour l'envoie individuel des emails en choisissant le destinataire svp :) ? Et BTW Merci pour ta réponse rapide
malheureusement non, faut que je travaille
Merci :)
Bonjour Romuald,
je viens de jeter un œil sur le UP1.fr. Les échanges de qualités que nous avons eu et la démonstration par la vidéo ou je vois bien que vous connaissez bien le sujet me rassure. Alors voila,
j'ai 50 ans et j'aime bien Excel. je suis Agent de Maîtrise Principal dans la fonction Publique Hospitalière. Je gère des transports de patients avec une régulation d'un coté et des brancardiers de l'autres. Dans mon travail j'ai construis l'outil informatique de la régulation moi même faute de logiciel spécialisé (trop chère) j'essaye de trouver des solutions pour aider mes régulateurs et les soulager dans le quotidien. J'utilise quelques fonctions avancée.
J'ai bien envie d'essayer d'apprendre le VBA mais à mon age ? est-ce trop tard?
Comment cela se passe? quel prix? le lieu de l’école ? en CFP OU formation continue ?
Même perso s'il faut et si pas trop cherre.
dans l'attente,
bonne journée,
gael
+Gaël Lenoir
Bonjour Gaël, On nous dit qu'il faut travailler jusqu'à 65 ans, voire plus alors si on est fichu à 50 ans comment fait-on ??? ;-)
Rassurez-vous 50 ans c'est le bel age !
Les formations que je dispense sont reconnues par l'Etat et à ce titre elles sont généralement financées à 100%
Je vous propose de me contacter via mon site web où vous trouverez un formulaire,
cliquez sur "Voir une autre page" puis sur "Contactez-nous"
indiquez moi votre n° de téléphone et l'heure à laquelle je peux vous joindre.
Mon site: www.up1.fr
cordialement,
Romuald
Bonjour,
J'ai un problème avec cette ligne: Set MonMessage = MaMessagerie.CreateItem(0)
Erreur d’exécution "91":
Variable objet ou variable de bloc With non définie
Bonjour,
reprenez la macro exactement comme sur la vidéo, sans doute un oubli ou un problème d'orthographe
bonjour ,
Cette ligne a un probleme et je ne voie pas se que sais :Set MaMessagerie = CreateObject("Outlook.Application")
Sub envoiMail()
Dim Fichier As Variant
Fichier = Application.GetOpenFilename("Tous les Fichiers(*.*),*.*")
MsgBox Fichier
Dim MaMessagerie As Object
Dim MonMessage As Object
Set MaMessagerie = CreateObject("Outlook.Application")
Set MonMessage = MaMessagerie.createitem(0)
MonMessage.To = "inter-bmo-2020@outlook.fr"
MonMessage.Attachements.Add Fichier
MonMessage.Suject = " Test d'envoi"
contenu = "Bonjour"
contenu = contenu & Chr(10) & Chr(13)
contenu = contenu & "Ci-joint votre document."
MonMessage.Body = contenu
MonMessage.Send
Set MaMessagerie = Nothing
End Sub
Bonjour Eric
Avez-vous bien déclaré la variable Fichier en variant ?