Microsoft 365 Envoyer un mail avec un copier/coller de cellules

LeLigérien

XLDnaute Nouveau
Bonjour à vous,
Je sollicites encore vos talents.
Je n'arrive pas à créer une macro qui récupère les adresses mail qui sont en C14:C17 et envoie automatiquement le mail par Gmail (ou avoir le choix au moment de l'envoie)
Pour compliquer un peu la chose j'aimerai faire un copier/coller des cellules B3:C10 et de l'insérer dans le mail mais pas en pièce jointe.

J'espère avoir été assez clair.
Merci par avance.
 

Pièces jointes

  • Classeur1.xlsm
    29 KB · Affichages: 8

LeLigérien

XLDnaute Nouveau
Merci pour vos retour.
En faite j'ai essayé de concocter une macro avec ChatGPT (pour voir :) ) et il m'avait créer ça :
code :

Sub Envoyer_Email_Gmail()

Dim objOutlook As Object
Dim objMail As Object
Dim rng As Range
Dim strSubject As String
Dim strBody As String
Dim strRecipient As String
Dim i As Integer
Dim AttachFile As String

' Adresse e-mail et mot de passe du compte Gmail utilisé pour envoyer des e-mails
Const GmailAdresse As String = "adresse@gmail.com"
Const GmailMotDePasse As String = "mot_de_passe"

' Définir le sujet, le corps et le nom du fichier attaché
strSubject = "Sujet de l'e-mail"
strBody = "Corps de l'e-mail"
AttachFile = "Nom_du_fichier_attaché.xlsx"

' Créer un objet Outlook
Set objOutlook = CreateObject("Outlook.Application")

' Définir la plage de cellules contenant les adresses e-mail
Set rng = Range("C14:C17")

' Parcourir chaque cellule de la plage
For i = 1 To rng.Rows.Count
' Vérifier que la cellule contient une adresse e-mail valide
If InStr(1, rng.Cells(i, 1).Value, "@") > 0 Then
' Ajouter l'adresse e-mail à la liste des destinataires
strRecipient = strRecipient & rng.Cells(i, 1).Value & ";"
End If
Next i

' Créer un nouvel e-mail
Set objMail = objOutlook.CreateItem(0)

' Ajouter les destinataires, le sujet et le corps
objMail.To = strRecipient
objMail.Subject = strSubject
objMail.Body = strBody

' Ajouter le fichier attaché
objMail.Attachments.Add ActiveWorkbook.FullName

' Envoyer l'e-mail via Gmail
With objMail
.SentOnBehalfOfName = GmailAdresse
.Save
.SendUsingAccount = objOutlook.Session.Accounts.Item(GmailAdresse)
.Send
End With

' Libérer les objets Outlook
Set objMail = Nothing
Set objOutlook = Nothing

End Sub
La macro fonctionnait mais envoyait une copie du fichier Excel et pas une copie des cellules.
Ca a fonctionné quelque fois et puis plus rien.

De toute façon après avoir réfléchi, les personnes qui seront amener à utiliser le fichier ne passeront peut être pas Gmail.
Donc si vous avez une proposition, je suis preneur.
 

fanch55

XLDnaute Barbatruc
@fanch55 : La macro ne fonctionne pas j'ai un message qui dit qu'il trouve pas mon adresse mail.
Normal, j'ai du laisser une de mes adresses mails en tant que compte émetteur pour les tests.
1680767453370.png

Il fautr mettre dans Mailbox un de vos comptes déclarés dans Outlook
 

Discussions similaires

Statistiques des forums

Discussions
311 740
Messages
2 082 047
Membres
101 880
dernier inscrit
Anton_2024