VBA Excel - Envoi mail avec fichier attaché avec Outlook

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • Comment envoyer un mail avec fichier attaché via Outlook en utilisant VBA Excel
    Pour télécharger les fichiers de l'exercice (fichier de départ et fichier final avec la macro, c'est ici :
    garbe.joel.free...
    Toutes les vidéos sont accessibles, organisées en thématiques sur :
    garbe.joel.free.fr
    Formation en ligne gratuite Excel et/ou Excel VBA
    Pour soutenir mon travail : www.paypal.me/...

Комментарии • 114

  • @clairepoinfoux5377
    @clairepoinfoux5377 3 года назад +1

    Bonjour Joël,
    Merci pour ce tuto. Super bien expliqué!
    J'ai modifié la macro pour avoir une personne en cc et que la pièce jointe soit personnalisée à chaque destinataire. J'ai donc ajouté :
    un Dim ListeCopie()
    et un Dim ListeFichier()
    un Dim sListeCopie As String
    et Dim sListeFichier As String
    Ainsi qu'
    un ListeCopie() = Range("tblBasePubli[COURRIEL2]")
    un ListeFichier() = Range("tblBasePubli[CHEMIN CONCATÉNÉ]")
    Puis dans ma boucle
    un .cc = ListeCopie(i, 1)
    un .attachments = ListeFichier(i, 1)
    débarrasser

  • @Raks4100
    @Raks4100 5 лет назад +1

    Bonjour ,
    Je souhaite tout d'abord vous remercier pour ce tuto ! Celui-ci m'a permis en ayant aucune base en vba
    d'adapter votre macro pour envoyer des mails automatiquement ( pour ma part sans fichier joint ) ,
    avec beaucoup de patience et de recherche j'ai réussis à :
    - Envoyer depuis une boite mail de mon service attachée en second à Outlook !
    - Ajouter en objet du mail ce qui est inscrit en case commentaire
    - Ajouter en corps du mail ce qui est inscrit en case commentaire
    Maintenant je souhaiterais mettre des conditions sur les envois de mail afin d'envoyer uniquement que si les cases commentaires sont remplies .
    Sans votre tuto , je serais toujours nulle part et pour ça je vous remercierais jamais assez ( ça se voit que je suis hyper content ? :p )
    bref bonne journée à vous

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад

      Merci Karim pour ce retour enthousiaste. Si vous êtes parvenu à faire cela sans connaissance préalable, vous devriez vous en sortir pour le dernier point avec les structures de test...
      garbe.joel.free.fr/Macro_et_VBA_Excel.htm#Automatisation8
      Voyez et revenez pour nous dire si vous y êtes parvenu
      Bonne journée à vous

    • @Raks4100
      @Raks4100 5 лет назад

      Avec plaisir !
      J'ai partiellement atteint mon objectif , en effet la macro se lance si j'ajoute une valeur dans commentaire,
      mais je souhaite que celle-ci envoie uniquement aux destinataires qui ont la case commentaire = valeurs ,
      et n'envoie rien aux autres destinataires si la case est vide.
      Je regarderais votre lien ce soir à tête reposée , j'ai déjà assez bien avancé pour quelqu'un qui n'a jamais utilisé du vba .
      Merci pour votre réponse et votre soutient.
      Bonne journée à vous

  • @rolandbarre5392
    @rolandbarre5392 3 года назад +1

    Merci de votre tuto, c'es de l'or en barre ...

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  3 года назад

      Et oui, et non un rôle en barre, n'est-il point 🤣😅

    • @rolandbarre5392
      @rolandbarre5392 3 года назад +1

      Super en tutos .... de l'humour en prime !... Ne changez rien ... merci encore

  • @tiibphotography1409
    @tiibphotography1409 5 лет назад +1

    Merci beaucoup vous m'avez été d'une grande aide. J'ai du créer une macro de relance automatique par mail de synthèse je pensais ne pas y arriver mais grasse a vous j'ai réussis d'autant plus que j'ai pu en même temps comprendre la signification de chaque codage :) bonne continuation a vous.

  • @clairepoinfoux5377
    @clairepoinfoux5377 3 года назад +1

    Oups, il semblerait qu'il manque un morceau de mon précédent commentaire... Alors le voici au complet.
    Bonjour Joël,
    Merci pour ce tuto. Super bien expliqué!
    J'ai modifié la macro pour avoir une personne en cc et que la pièce jointe soit personnalisée à chaque destinataire. J'ai donc ajouté :
    un Dim ListeCopie()
    et un Dim ListeFichier()
    un Dim sListeCopie As String
    et Dim sListeFichier As String
    Ainsi qu'
    un ListeCopie() = Range("tblBasePubli[COURRIEL2]")
    un ListeFichier() = Range("tblBasePubli[CHEMIN CONCATÉNÉ]")
    Puis dans ma boucle
    un .cc = ListeCopie(i, 1)
    un .attachments = ListeFichier(i, 1)
    Lorsque j'exécute la macro, j'ai un message "erreur automation" qui apparait... Je ne sais plus comment m'en débarrasser. Auriez-vous une idée de l'erreur que j'aurais pu commettre?
    Merci

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  3 года назад

      Bonsoir Claire... Pas devant mon ordinateur mais ne manquerait-il pas un
      .Add derrière le.Attachments?
      Merci pour votre intérêt

    • @clairepoinfoux5377
      @clairepoinfoux5377 3 года назад

      @@FormationExcelTousNiveaux Bonjour Joël, merci! J'ai maintenant une erreur 400 qui pop... Est-ce qu'il y a une configuration spéciale à faire avec Outlook?

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  3 года назад

      Il semblerait que ce sujet d'erreur 400 soit débattu dans la page suivante, pour ma part, cela ne me dit rien
      fr.repairmsexcel.com/blog/fixer-excel-vba-erreur-400
      Bonne soirée

  • @Michel88200
    @Michel88200 7 лет назад +1

    Bonjour Joël,
    Magnifique. Merci

  • @celinececile5194
    @celinececile5194 3 года назад +1

    J'ai trouvé cela facile pour une fois et je te remercie, très bonne pédagogie. J'ai deux questions 1- si je change de classeur excel mais que je nomme chaque fois mon tableau de la même façon, est ce que cela fonctionnera ? 2 - comment faire pour changer le message sans entrer à chaque fois dans la macro. Dernier point, tu ne parles pas de la ligne objet de Outlook (je vais revoir ta vidéo pour savoir si j'ai loupé quelque chose. Merci pour ton aide

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  3 года назад

      Bonsoir et merci... Pour la question 1... Oui, pour le reste, Il pourrait être possible de paramétrer l'objet ou le texte du message dans une cellule Excel, et aller chercher cette cellule dans la macro. 😜👍

  • @bgtec
    @bgtec 4 года назад

    Bonjour Joël
    Trop cool ce tuto. ça m'est vraiment très utile. Tout est bien expliqué et très bien détaillé. encore merci.
    Mais j'ai un souci je voudrai s'il te plait que vous faites un tuto sur la configuration de Ms Outlook. je n'y parviens pas. je suis bloqué au niveau des serveur entrant et sortant. jai déjà fait plusieurs essais sans succès. A l'aide sil te plait

  • @barbaradolciani2152
    @barbaradolciani2152 4 года назад +1

    super tuto merci,

  • @mefmosaic
    @mefmosaic 5 лет назад +1

    Bonjour Joël,
    J'ai utilisé votre macro mais j'ai une erreur d'exécution 13, incompatibilité de type à la ligne :
    ListeDest = Range("tblbase[Mail]")
    J'ai pourtant scrupuleusement suivi votre tuto... Des suggestions ?
    Merci par avance.
    Cdlt.
    Jérôme
    .

  • @marvinnormand9
    @marvinnormand9 5 лет назад +2

    Bonjour Joël,
    Vidéo très intéressante et bien expliquée.
    Cela correspond presque à ce que je recherche. Depuis un mois, j'essaie de trouver une solution pour envoyer un mail unique et non un ensemble de mail.
    Dans ma base excel, j'ai des lignes qui s'incrémentent automatiquement. Ainsi, dans la colonne "i" j'ai mes mails et dans la colonne "j", j'ai créée un menu déroulant avec OUI/NON.
    MA DEMANDE:
    Sur base de votre programmation, je souhaiterais envoyer (avec mon fichier) au départ des données qui se situent dans le sheet(6) colonne i (mail) et j(OUI/NON) un mail unique après sélection du OUI (les autres lignes seraient évidemment sur NON).
    J'ai essayé de retravailler avec votre fichier qui fonctionne à merveille ! Mais pour l'instant, j'ai 3 lignes dans mon fichier excel et votre programmation génère 3 mails que je vois gràce à Display et non send.
    Pouvez-vous m'aider SVP, j'adore faire des recherches, créer, mais là, je désespère...
    Bonne fête,
    Marc

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад +1

      Bonjour Marvin et merci...
      Par rapport à votre question, je ne comprends pas où se situe le problème, si vous avez 3 lignes à "oui", il est normal d'avoir 3 mails ? Pourriez-vous être plus précis, ou m'envoyer votre fichier avec des explications complémentaires...

    • @marvinnormand9
      @marvinnormand9 5 лет назад +1

      @@FormationExcelTousNiveaux Bonjour Joël,
      Merci de votre réponse. j'ai bien 3 lignes, mais 1 seul est sur OUI (mon Gmail) mais lorsque je lance votre programmation, j'obtiens bien 3 messages avec attach en visuel alors que 2 sont sur NON.
      Rappel:
      J'ai un tableau avec 10 colonnes dans le sheet (6)
      - Les mails se trouvent dans la colonne "i"
      - Le OUI/NON (menu déroulant) dans la colonne "j"
      Je souhaiterais que lorsque je sélectionne le OUI dans la colonne "j", il envoie mon bon de commande UNIQUEMENT au mail correspondant de la même ligne.
      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
      Dim fname 'déclaration de la variable pour la voix (voir plus bas juste après Display)
      Dim objvoice As Object 'déclaration de la variable pour la voix (voir plus bas juste après Display)
      sFichier = Application.GetOpenFilename(, , "Veuillez sélectionner le bon de commande de matériel CGC à 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"
      .Display 'or Send
      Set objvoice = CreateObject("sapi.spvoice") 'texte d'accueil à l'ouverture du fichier (voix: voir plus haut dans les déclarations des variables)
      objvoice.Speak ("Your order has been sent successfully") 'texte d'accueil à l'ouverture du fichier (voix: voir plus haut dans les déclarations des variables)
      End With
      Set oMsg = Nothing
      Next
      oMsgApp.Quit
      Set oMsgApp = Nothing
      'MsgBox "Votre commande a bien été envoyée." & Chr(10) & Chr(13) & "En cas de problème," & Chr(10) & Chr(13) & _
      '"veuillez contacter votre administrateur." & _
      'Chr(10) & Chr(13) & "Marc Normand - GCG/Event - 02/642 65 06. "
      End Sub
      Merci et passez de bonnes fêtes.

    • @marvinnormand9
      @marvinnormand9 5 лет назад +1

      J'ai oublié de vous dire: Lorsque le OUI est sélectionné dans le sheet (6, col j), c'est en appuyant sur le bouton(macro) dans le sheet(4) que la procédure commence.

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад +1

      Bonsoir
      Je comprends mieux
      Tout d'abord, sans test du "Oui", Excel ne peut pas deviner qu'il doit omettre des destinataire.
      Par ailleurs le chiffre x à la fin de LisreDest(i, x) doit correspondre au numéro de colonne où se trouve l'info.
      Si le mail se trouve en colonne I, on devrait avoir
      . to = ListeDest(i, 9)
      et après le for i= etccc
      on devrait avoir le test
      if lcase(listeDest(i, 10)) = "oui"
      then
      sans oublier le
      End if
      juste avant le next
      En espérant pas d'erreur dans ma réponse faite sans filet...
      Joyeux Noël

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад +1

      OK, errer de ma part après vérification... concernant le ListeDest(i, 9), il faut bien laisser le 1 car la listeDest ne se rapproche qu'à une seule colonne dans notre exercice.
      En revanche, il faut bien mettre un test, qui ressemblerait du coup à
      if ListeOui(i, 1) = "OUI" then
      en ayant pris soin de définir la variable tableau ListeOui comme vous l'avez fait pour les autres....

  • @MrLudo22
    @MrLudo22 5 лет назад +1

    Bonjour Joël,
    Merci pour cet excellent travail généreux qui simplifie grandement les choses ;)
    Une question, est-il possible d'envoyer plusieurs documents en pièces jointes ?
    Bonne journée?

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад

      Bonjour Ludovic, merci
      Pour envoyer plusieurs fichier, il suffit d'utiliser plusieurs fois la l.'instruction
      .Attachments.Add etc
      Bonne journée

  • @gouach57
    @gouach57 4 года назад +1

    MERCI beaucoup

  • @gregsti
    @gregsti 7 лет назад +1

    Très bien ! Y a plus qu'à !! :)

  • @brouardju
    @brouardju 3 года назад +1

    Bonjour,
    J'ai d'abord fais un test avec des adresses mail de test (la mienne, celle de deux ou trois collègues)
    Tout fonctionne parfaitement, le mail s'envoie avec la bonne pièce jointe à la bonne personne.
    Quand j'applique la macro à mon tableau client, elle plante au niveau du .send argument ou appel de procédure incorrect.
    J'ai tourné le problème dans tous les sens, si je mets mon adresse mail à la place de la première adresse client, ca passe (en pas à pas) et ca plante sur la seconde adresse... Avez-vous une idée?
    En tout cas merci car c'est un tuto très facile à appliquer, modifier et comprendre !

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  3 года назад

      Bonjour,
      Pour me faire une idée, il me faudrait le fichier... Erreur de code ou Pb dans le tableau. Il faudrait faire le pas à pas en observant tout ce qui se passe
      Bonne journée

    • @brouardju
      @brouardju 3 года назад

      @@FormationExcelTousNiveaux je ne comprend pas pour quelles raisons le code fonctionnerait pour certaines adresses et pas pour d'autre... J'ai fais le pas à pas, et je ne comprends pas ce qui diffère...

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  3 года назад

      Re 😜 comme indiqué, je ne peux pas le savoir sans le fichier. Merci à vous.

  • @BertrandSALZE
    @BertrandSALZE 8 месяцев назад +1

    Bonsoir Joël,
    Merci pour ce tuto qui sert encore 7ans après sa publication.
    Si je peux abuser un peu...
    Je suis à la recherche d'un tuto qui expliquerait comment mettre un lien hypertexte dans le mail pour renvoyer directement au fichier Excel. Ce fichier est sur un serveur commun.
    Si vous avez des éléments cela serait très gentil. Merci
    Bertrand

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  8 месяцев назад

      Je regarde si je peux donner une procédure cce week-end. À priori, pas besoin d'un tuto spécifique pour cela, juste un petit topo en réponse... À suivre donc...

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  8 месяцев назад +1

      Voici un petit topo, à adapter en fonction de l'endroit où le lien doit être envoyé (ici, en dernière ligne du mail)...
      1 - Définir l'emplacement du fichier ...
      Dim sChem As String
      sChem = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
      2 - Créer une variable
      Dim strHTML As String 'Pour créer un Code HTML dans le corps du Mail'
      3 - "Remplir la variable...
      strHTML = "" & ActiveWorkbook.Name & ""
      4 - Insérer au-dessous de .body et....
      .htmlbody = .body & strHTML
      L'idéal est de remplacer tous les .body par .htmlbody si on veut ajouter ce lien ailleurs
      et cela devrait le faire
      Bon courage

    • @BertrandSALZE
      @BertrandSALZE 8 месяцев назад +1

      Merci beaucoup pour la rapidité de la réponse. 🙏🏻

  • @fabiengeniaut6115
    @fabiengeniaut6115 6 лет назад +2

    Bonjour
    Très interessant votre tuto
    Moi je cherche le moyen d'envoyer un mail a chaque fois que je rajoute une ligne dans le tableau
    je ne sais pas si c'est possible .
    Merci

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  6 лет назад

      +Fabien GENIAUT Bonjour Fabien et merci pour votre commentaire. Tout est possible (ou presque)... Il convient de bien prévoir ce qui doit réellement déclencher l'envoi, ce qui doit être envoyé, et gérer cela avec le VBA. Le plus compliqué est bien souvent de bien savoir ce qu'on veut faire vraiment...
      Bon courage

  • @charlesvanweyenbergh5286
    @charlesvanweyenbergh5286 Год назад

    Bonjour Joël,
    Est-il possible qu'en lieu et place de la PJ .xls en attaché soit plutôt inséré dans le corps du mail la feuille .xls ?
    Merci d'avance de tes commentaires
    ABelle journée
    A bientôt
    Charles.

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  Год назад

      Bonjour Charles. Je ne saurais pas le faire sans rechercher moi-même la solution ailleurs. Bon courage

  • @mickaelalberola7037
    @mickaelalberola7037 5 лет назад +1

    Bonjour, est il vraiment possible de télécharger automatiquement un fichier autre que exel (stocké sur le PC) et de l'envoyer automatiquement? je n'y arrive pas. (j'avoue que je n'est pas un super niveau pour le moment...

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад

      Bonjour Mickael, dans le tuto, j'ai pris un fichier Excel, mais cela fonctionne avec tout type de fichier. En revanche, cela fonctionne avec Outlook, pas forcément avec d'autres systemes de messagerie
      Bon courage

  • @jcp9075
    @jcp9075 4 года назад +1

    Bonjour Merci pour ces explications cela fonctionne parfaitement ! Toutefois comment est il possible d'attacher un fichier différent pour chaque ligne ?
    merci d'avance ^^

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  4 года назад +1

      Bonjour, pour cela, il serait judicieux de prévoir le chemin avec le nom de fichier dans la base de données, puis, dans la boucle VBA, prendre en compte cette information avec la même logique que pour l'adresse mail
      Bon courage

    • @jcp9075
      @jcp9075 4 года назад +1

      @@FormationExcelTousNiveaux entendu je vais me concentrer là dessus , merci pour votre aide !

  • @sarahjouannin8828
    @sarahjouannin8828 2 года назад +1

    Bonjour Joël,
    Merci pour ce tuto ! Je ne sais pas si vous pourriez m'aider mais j'ai déjà un module que j'ai récupérer d'un collaborateur mais je ne connais rien du tout à la VBA Excel.. Il fonctionnait très bien mais j'aimerais ajouter la possibilité de mettre des pièces jointes de manière automatique pour mes 95 mails qui sont tous différents. Après avoir demandé sur des forums je n'ai aucun retour sur une solution possible... Est-il possible de vous l'envoyer pour avoir votre avis ?
    Merci d'avance et bonne journée :)

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  2 года назад +1

      Bonjour Sarah
      Vous pouvez communiquer par mail, et je vous dirai si je peux faire quelque chose. Avec votre fichier, que je puisse me rendre compte, et les explications de votre attente.

    • @sarahjouannin8828
      @sarahjouannin8828 2 года назад

      @@FormationExcelTousNiveaux merci beaucoup, c’est fait !

  • @dimitrinimpa8066
    @dimitrinimpa8066 4 года назад +1

    Bonjour et merci pour ce tutoriel utile.
    je voudrais savoir s'il est possible de mettre une image dans le corps du mail directement, et si oui comment ?

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  4 года назад

      Merci à vous ! Possible? probablement ☺️
      Comment ? Hors de mes connaissances ?
      Bonne journée

  • @nathalieberckmans5399
    @nathalieberckmans5399 3 года назад

    bonjour, super tuto. si je ne vaux pas envoyer de pièce jointe comment dois je faire? bien à vous

  • @loris6145
    @loris6145 4 года назад +1

    Bonjour Joël
    Est il possible d'ajouter une signature avec photo (logo de l'entreprise) directement dans le body. Je fais des chr 10 pour revenir à la ligne afin de mettre la signatures dans le corps du mail mais pour la photo impossible...
    Merci

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  4 года назад

      Bonjour Loris
      Perso, je ne connais pas trop, mais peut-être que la discussion suivante peut apporter la réponse...
      www.developpez.net/forums/d1197726/logiciels/microsoft-office/excel/macros-vba-excel/inserer-image-mail-vba-outlook/
      Bon courage

    • @loris6145
      @loris6145 4 года назад

      @@FormationExcelTousNiveaux bonjour Joël
      J'ai réussi en mettant le body en HTMLbody. J'ai ajouté tout le mail en ligne de code avec des "" pour les sauts de ligne. J'ai intégré la signature comme si elle faisait partie du mail puis j'ai ajouté la photo en mettant "

  • @vincentbodart3762
    @vincentbodart3762 6 лет назад

    super je cherchais une solution comme ca pour mes organisations. mais j'aimerais pouvoir faire deux macro dans mon fichier un comme le votre que j'ai fais mais également un en sélectionnant les destinataires de la liste et pas a tous. c'est possible? bien a vousVincent

  • @marvinnormand9
    @marvinnormand9 5 лет назад

    Bonjour Joël,
    J'ai réalisé avec votre appui, une base Excel VBA pour envoyer un mail avec pièce jointe. Cela marche super bien !
    Maintenant, je souhaiterais mettre en GRAS/COULEUR/SOULIGNE/TAILLE etc. certaines parties du mail automatiquement. Lorsque je clique sur le bouton qui lance la macro, celui-ci envoie le mail automatiquement aux destinataires . JE NE SOUHAITE PAS INTERVENIR DANS LE MAIL MOI-MÊME pour mettre en valeur le mail.
    Avez-vous un tuto qui explique cela ? ou pouvez-vous m'aider.
    D'avance merci,
    Marc

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад +1

      Bonjour Marc,
      Vous allez devoir rechercher du côté d'experts plus pointus que moi, car je ne sais pas faire, et n'ai pas de temps à consacrer à cet aspect. Bon courage

  • @frogeregis
    @frogeregis 7 лет назад +1

    Merci

  • @remiboilard3241
    @remiboilard3241 5 лет назад +1

    Bonjour, est il possible de faire la même chose mais pour Gmail ?

  • @AGUILAR7651
    @AGUILAR7651 3 года назад

    Bonsoir Mr Garbe. Désolé de revenir sur une vidéo qui a 3 ans mais elle correspond tout à fait à mon besoin professionnel. J'ai en effet besoin d'envoyer des mails à différents utilisateurs tout en ayant la possibilité de choisir un fichier en pièce jointe. J'ai une erreur d'exécution de la Macro dès la définition de la 3° variable : Dim oMSGApp As Outlook .Application. J'ai un message "Erreur e compilation. Type défini par l'utilisateur non défini". J'utilise pourtant votre fichier "source" et je ne vois pas ce qui bloque. Auriez vous une idée ? Merci d'avance.

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  3 года назад

      Bonjour,
      Excel restant utilisé, il n'y a pas encore de péremption 😜
      Pour le reste, je crois voir un espace avant le point de Application, à vérifier... Autre piste, vérifier si la référence à Outlook est cochée dans outils, références... Autre piste... Envoyez moi votre fichier que je jette un œil 😜

    • @AGUILAR7651
      @AGUILAR7651 3 года назад +1

      Bonsoir et merci pour votre proposition d'aide. Je crois que j'ai trouvé le problème : à l'ouverture d'Outlook, il y a un message "avertissement de connexion limitée" auquel il faut répondre et qui devait empêcher la Macro de s'exécuter. Maintenant cela fonctionne très bien. En tout cas merci encore pour votre disponibilité et quelle chance vous avez de savoir coder en VBA en direct... Cela force le respect. Je mesure le chemin qui me reste à parcourir....

  • @audreycoiquaud2404
    @audreycoiquaud2404 4 года назад +1

    Bonjour Joël,
    Tout d'abord, merci pour cet excellent tuto!!!
    J'ai tout de même une question. Je souhaite envoyer un mail distinct à plusieurs destinataires pour chaque ligne de mon tableau (comme un publipostage word). Je m'initie au vba et j'aimerais écrire un code qui individualise la liste des destinataires par ligne du tableau. Pourriez-vous m'aider, svp?
    Je vous remercie et souhaite une excellente journée.
    Audrey

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  4 года назад

      Bonsoir Audrey
      il me semble que la logique est exposée dans le tuto ? pour cela, il faut visionner la vidéo jusqu'à la fin, car c'est là que ça se passe... si une phrase spécifique doit être ajoutée à chaque destinataire, vous pouvez la prévoir dans une colonne supplémentaire et l'intégrer par code dans le corps du mail en concaténation, comme pour le reste de message.
      Bon courage

    • @audreycoiquaud2404
      @audreycoiquaud2404 4 года назад

      @@FormationExcelTousNiveaux
      Merci infiniment Joël!!!!
      Grâce à vos indications j'ai réussi à individualiser les mails et adresser chacun à plusieurs destinataires.
      Encore merci.
      Très bonne journée à vous
      Audrey

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  4 года назад

      merci pour ce retour 👍👌

  • @brunoguiheux520
    @brunoguiheux520 Год назад

    Bonjour Joël, peut-on envoyer plusieurs fichiers en même temps?

  • @fabiengeniaut6115
    @fabiengeniaut6115 6 лет назад +1

    comment faire avec votre macro pour mail par mail et pas tous d'un coup Merci je n'arrive pas a trouvé

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  6 лет назад

      Merci à vous Fabien,
      Sauf erreur de ma part, et si j'ai bien compris, il suffirait, à l'intérieur de la boucle
      For i = ...
      les instructions pour l'envoi...
      next
      d'ajouter un test sur la condition nécessaire pour envoyer le mail, ce qui donnerait :
      for i= ...
      if condition ?
      les instructions pour l'envoi
      end if
      next
      en espérant avoir répondu à voter attente,

    • @fabiengeniaut6115
      @fabiengeniaut6115 6 лет назад +1

      Je ne comprends pas pourquoi faire une condition . Je vais essayer de trouver Merci de vos conseils

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  6 лет назад

      +Fabien GENIAUT ne faut-il pas faire la différence entre ceux qui doivent recevoir le mail et les autres ?
      À quelle condition un utilisateur doit il recevoir le mail...
      D'où le test...
      Sinon, on peut les supprimer de la liste 😒

  • @richardmarc2687
    @richardmarc2687 5 лет назад +1

    Bonjour Joël,
    Super le tuto !! J'ai la même erreur d'exécution 13 que @mefmosaic ! J'ai repris point par point le code corrigé que vous lui avez retourné dans votre dernière réponse. Il est identique au mien sauf qu'à la fin de cette ligne :
    ListeDest = Range("tblBase[Mail]") ; le nom de mon tableau étant "tblBase" et la colonne des adresses étant "Mail", il me manquait le "point Value" que je me suis empressé d'ajouter tout heureux d'avoir déniché l'erreur. Hélas non, j'ai toujours "Erreur d'exécution 13" qui apparait au milieu de mon écran pour "incompatibilité de type". Avez vous d'autres suggestions de corrections pour ce code ?
    Bonne fin de journée et merci pour le tuto
    Marc

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад

      Bonjour Marc,
      Le plus sûr edt de m'envoyer le fichief...
      joel.garbe@sfr.fr
      Bonne soirée

    • @celinececile5194
      @celinececile5194 3 года назад

      Il faut remblacer Range("tblBase[mail]") par Range("listedest[email]") pour moi ça a résolu mon problème

    • @lionelsutra9438
      @lionelsutra9438 2 года назад

      @@celinececile5194 desole mais pour moi non, j'ai toujours le même message d'erreur.
      listeDest() = Range("listedest[Mail]") => il semble qu'il faut un (;) oui ok mais ou??

  • @hinanmedjdoub8612
    @hinanmedjdoub8612 5 лет назад

    Bonjour,
    Svp, comment faire pour envoyer un email de rappel à 10j avant échéance à un destinataire, tout en mettant d autres destinataires en CC ou bien CCI
    Je vous remercie :)

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад

      Bonjour Hinan,
      pour la date, prevoir une procédure qui testera la date d'échéance
      if date = échéance - 10
      avant l'instruction send
      Pour destinataires en copie, vous avez. cc
      et. cci pour copie cachée
      Bon courage

  • @rousseladrien662
    @rousseladrien662 3 года назад

    peut on faire pareil avec word?

  • @brunoguiheux520
    @brunoguiheux520 Год назад +1

    Bonjour,

  • @arnoldkouassi9812
    @arnoldkouassi9812 6 лет назад

    bonjour svp ! comment envoyé a d'autre email comme yahoo,gmail et bien d'autre svp urgent *

  • @mefmosaic
    @mefmosaic 5 лет назад

    Voici le code avec lequel j'ai l'erreur d'éxécution 13, incompatibilité de type à la ligne :
    ListeDest = Range("tblbase[Courriel]")
    Où est l'erreur ?
    Code :
    Option Explicit
    Sub envoimail()
    'Déclaration des variables
    Dim ListeDest()
    Dim i As Long
    Dim oMsgApp As Object
    Dim oMsg As Object
    Dim sListeDest As String
    Dim sFichier As String
    'Fichier que l'on souhaite envoyer
    sFichier = Application.GetOpenFilename(, , "Sélectionnez le fichier à envoyer")
    If sFichier = "" Then
    MsgBox ("Aucun fichier sélectionné, opération annulée")
    Exit Sub
    End If
    Set oMsgApp = CreateObject("outlook.application")
    'Gestion de la liste des destinataires (le tableau se remplit automatiquement)
    ListeDest = Range("tblbase[Courriel]")
    sListeDest = ""
    'Mise sous forme d'une chaine de caractères sListeDest
    For i = LBound(ListeDest(), 1) To UBound(ListeDest(), 1)
    sListeDest = sListeDest & ";" & ListeDest(i, 1)
    Next
    'Message par lui-même
    Set oMsg = oMsgApp.CreateItem(0)
    'Contenu du message
    With oMsg
    .To = sListeDest
    .Attachments.Add sFichier
    .Subject = "Fichier de la semaine"
    .Body = "Veuillez trouver ci-joint le fichier de la semaine" & Chr(10) & Chr(13) & "Bonne journée"
    .Send
    End With
    'Libération de l'espace mémoire de l'application Outlook qui s'est ouverte
    oMsgApp.Quit
    Set oMsgApp = Nothing
    Set oMsg = Nothing
    MsgBox "Mail envoyé !!"
    End Sub

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  5 лет назад

      Bonsoir Jérôme,
      Je pensais avoir répondu mais je ne vois pas la réponse...
      Essayez aves les parenthèses, sinon, envoyez moi votre fichier...
      Joël
      joel.garbe@sfr.fr

    • @mefmosaic
      @mefmosaic 5 лет назад

      @@FormationExcelTousNiveaux Bonjour,
      Comment faire pour vous envoyer la macro ?
      A défaut je la copie colle ci-dessous :
      Sub envoimail()
      'Déclaration des variables
      Dim ListeDest()
      Dim i As Long
      Dim oMsgApp As Object
      Dim oMsg As Object
      Dim sListeDest As String
      Dim sFichier As String
      'Fichier que l'on souhaite envoyer
      sFichier = Application.GetOpenFilename(, , "Sélectionnez le fichier à envoyer")
      If sFichier = "" Then
      MsgBox ("Aucun fichier sélectionné, opération annulée")
      Exit Sub
      End If
      Set oMsgApp = CreateObject("outlook.application")
      'Gestion de la liste des destinataires (le tableau se remplit automatiquement)
      ListeDest = Range("tblbase[Courriel]").Value
      sListeDest = ""
      'Mise sous forme d'une chaine de caractères sListeDest
      For i = LBound(ListeDest(), 1) To UBound(ListeDest(), 1)
      sListeDest = sListeDest & ";" & ListeDest(i, 1)
      Next
      'Message par lui-même
      Set oMsg = oMsgApp.CreateItem(0)
      'Contenu du message
      With oMsg
      .To = sListeDest
      .Attachments.Add sFichier
      .Subject = "Fichier de la semaine"
      .Body = "Veuillez trouver ci-joint le fichier de la semaine" & Chr(10) & Chr(13) & "Bonne journée"
      .Send
      End With
      'Libération de l'espace mémoire de l'application Outlook qui s'est ouverte
      oMsgApp.Quit
      Set oMsgApp = Nothing
      Set oMsg = Nothing
      MsgBox "Mail envoyé !!"
      End Sub

  • @oliviergodart1951
    @oliviergodart1951 Год назад

    Bonjour Joël,
    J'ai toujours erreur de compilation: variable non définie.
    Merci pour votre retour
    B à V.

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  Год назад

      Bonjour Olivier, vérifiez bien l'orthographe de votre variable et vérifiez si cette variable est bien déclarée, au bon endroit...

    • @oliviergodart1951
      @oliviergodart1951 Год назад

      @@FormationExcelTousNiveaux Bonjour, Avez vous une adresse pour vous envoyer le texte de ma macro?
      Toujours le même problème, Erreur de compilation, variable non définie 😞

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  Год назад

      Bonjour Olivier
      garbe.joel@free.fr

    • @oliviergodart1951
      @oliviergodart1951 7 месяцев назад

      Bonjour Joel, tu as changé d'adresse mail?@@FormationExcelTousNiveaux

    • @FormationExcelTousNiveaux
      @FormationExcelTousNiveaux  7 месяцев назад

      ​@@oliviergodart1951bonjour Olivier. Tout dépend par rapport à quand, j'en ai plusieurs en fait, et je ne les lis pas tous les jours... Retraite oblige 🤪

  • @marvinnormand9
    @marvinnormand9 5 лет назад

    Bonjour Joël,
    J'ai une petite question PAR RAPPORT A VOTRE TUTO.
    1) Lorsque je ne sélectionne pas de fichier(bon de commande) et que je clique sur OPEN, RIEN NE SE PASSE !
    - Je souhaiterais que le message Box puisse indiquer que rien n'a été sélectionné et rien ne se passe.
    2) Lorsque je ferme avec la X ou CANCEL (sans avoir sélectionné le fichier, il m'indique un message box "voulez-vous envoyer cet E-Mail ? si je clique YES, il continue la procédure et m'indique un DEBUG.
    Par contre, si je clique NO, la procédure s'arrête.
    - Je souhaiterais que lorque le fichier n'est pas sélectionné et que je ferme par la croix X ou cancel, la procédure s'arrête avec un MsgBox rien de sélectionné. Veuillez sélectionner un fichier.
    Pouvez-vous m'aider ?
    Marc
    Merci et belle journée

  • @paulharvey3564
    @paulharvey3564 4 года назад +1

    Bonjour M. Joel
    Tout d’abord merci beaucoup pour les tutos. Tres bien fait et m'aide beaucoup.
    Ma question c'est j'ai pas Outlook 13 ou autre dans mon ordi. et pour envoyer des email avec vba il le faut. es qu’il y a autre moyen???
    Merci d'avance
    Paul Harvey
    tobiepaul@hotmail.com