XL 2013 envoie tableau dans corp du mail vba

David62800

XLDnaute Nouveau
bonjour
je cherche a créer une macro pour faire l'envoie un tableau en 1 clic
voici mon code actuel avec Outlook mais mais ca bloque avec ma version Outlook apparemment
est il possible de modifier mon code pour que l'envoie ce fait avec Gmail (page internet) en y incluant directement l' identifiant et mot de passe
merci de votre aide
si vous avec une autre solution pour un envoie du tableau avec enregistrement et envoie en pièce jointe je suis preneur aussi

voici mon code actuel

Sub EnvoiMail()

'declaration des variables
Dim Mafeuille As Worksheet ' la feuille contenant le tableau de board
Dim NbLigne As Integer ' Nombre de lignes a recuperer
'Affectation des variables
Set Mafeuille = ThisWorkbook.Sheets("Dashboard") 'on definit le nom de la feuille
'desactivation du rafraichissements de l'ecran
Application.ScreenUpdating = False
'on calcule le nombre de ligne a prendre dans la feuille a partir de la colonne A
NbLigne = Mafeuille.Range("A" & Application.Rows.Count).End(xlUp).Row
'on selectione la plage a copier
Mafeuille.Range("A1:O" & NbLigne).Select
'avec l'objet MailEnvoie on envoie dans le corps du mail
With Selection.Parent.MailEnvelope.Item
.to = Mafeuille.Range("R1").Value 'destinataire direct
.co = Mafeuille.Range("R3").Value 'destinataire en copie
.bcc = "" 'destinataire en copie invisible
.Subject = Mafeuille.Range("R2").Value 'objet du mail
.attachements.Add "CheminFichier" 'piece jointe
.Send 'envoie du mail
.display 'affichage du mail
End With

'confirmation d'envoie du mail
MsgBox "Votre mail a été envoyé avec succé.", vbInformation + vbOKOnly, "Confirmation envoie mail"

'activation du rafraichissements de l'ecran
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • test envoie mail.xlsm
    33.7 KB · Affichages: 8

Staple1600

XLDnaute Barbatruc
Re

@patricktoulon
C'est évidemment compliqué pour un utilisateur basique de Windows de toucher à la base de registre
(sans oublier les risques d'erreur)
Et personnellement, sachant qu'il ne s'agit pas de mon PC, je préfère m'abstenir de donner plus de détails
D'autant que la maison mère nous prévient
WarningThis workaround may make a computer or a network more vulnerable to attack by malicious users or by malicious software such as viruses. We do not recommend this workaround but are providing this information so that you can implement this workaround at your own discretion. Use this workaround at your own risk. If you do implement this workaround, it is strongly suggested that you do this only for the controls that you must use.

PS: Pourquoi faire un PDF, quand l'info est disponible sur le web ?
C'est moins chronophage le lien d'une URL.
 

Staple1600

XLDnaute Barbatruc
Re

@David62800
Quand tu dis que ton Outlook plante, quel message d'erreur s'affiche ?

Est-ce que tu arrives à créer un mail avec ce simple code VBA
Code:
Sub test_mailA()
With CreateObject("Outlook.Application").CreateItem(0)
.Subject = "Test envoi mail"
.To = "staple@elptas.com" 'REMPLACE par ton email
.Display
End With
End Sub
Et est-ce que l'envoi fonctionne
Code:
Sub test_mailB()
With CreateObject("Outlook.Application").CreateItem(0)
.Subject = "Test envoi mail"
.To = "staple@elptas.com" 'REMPLACE par ton email
.Send
End With
End Sub
 

David62800

XLDnaute Nouveau
Re

@David62800
Quand tu dis que ton Outlook plante, quel message d'erreur s'affiche ?

Est-ce que tu arrives à créer un mail avec ce simple code VBA
Code:
Sub test_mailA()
With CreateObject("Outlook.Application").CreateItem(0)
.Subject = "Test envoi mail"
.To = "staple@elptas.com" 'REMPLACE par ton email
.Display
End With
End Sub
Et est-ce que l'envoi fonctionne
Code:
Sub test_mailB()
With CreateObject("Outlook.Application").CreateItem(0)
.Subject = "Test envoi mail"
.To = "staple@elptas.com" 'REMPLACE par ton email
.Send
End With
End Sub
non ca ne fonctionne pas
je ne vois pas pourquoi l'appli windows outlook ne fonctionne pas et si je passe par l'adresse https://outlook.live.com/ je peux me connecter
erreur 2.jpg
 

Pièces jointes

  • erreur.png
    erreur.png
    133.4 KB · Affichages: 16

David62800

XLDnaute Nouveau
bonjour de retour avec une nouvelle version office 2019
dois je deplacer mon sujet ou ce code devrait fonctionner aussi ?

Sub EnvoiMail()

'declaration des variables
Dim Mafeuille As Worksheet ' la feuille contenant le tableau de board
Dim NbLigne As Integer ' Nombre de lignes a recuperer
'Affectation des variables
Set Mafeuille = ThisWorkbook.Sheets("Dashboard") 'on definit le nom de la feuille
'desactivation du rafraichissements de l'ecran
Application.ScreenUpdating = False
'on calcule le nombre de ligne a prendre dans la feuille a partir de la colonne A
NbLigne = Mafeuille.Range("A" & Application.Rows.Count).End(xlUp).Row
'on selectione la plage a copier
Mafeuille.Range("A1:O" & NbLigne).Select
'avec l'objet MailEnvoie on envoie dans le corps du mail
With Selection.Parent.MailEnvelope.Item
.to = Mafeuille.Range("R1").Value 'destinataire direct
.co = Mafeuille.Range("R3").Value 'destinataire en copie
.bcc = "" 'destinataire en copie invisible
.Subject = Mafeuille.Range("R2").Value 'objet du mail
.attachements.Add "CheminFichier" 'piece jointe
.Send 'envoie du mail
.display 'affichage du mail
End With

'confirmation d'envoie du mail
MsgBox "Votre mail a été envoyé avec succé.", vbInformation + vbOKOnly, "Confirmation envoie mail"

'activation du rafraichissements de l'ecran
Application.ScreenUpdating = True
End Sub

ca bloque a ce niveau
With Selection.Parent.MailEnvelope.Item
 

Pièces jointes

  • Copie de test envoie mail.xlsm
    31.4 KB · Affichages: 10

MG_000

XLDnaute Nouveau
bonjour à tous
j'aurais aussi besoin d'aide à ce sujet ... :(
voici la macro que j'ai pour envoyer dans un mail un tableau excel
Je souhaiterais à la place de ActiveCell mettre ThisWorkbook.Worksheets("Demande").Range("A3:AA30")
Cependant il me met toujours un message d'erreur ...

Aussi dans CC = j'ai mis 3 adresses mails séparées par & mais dans outlook, les adresses se trouvent toutes collées serrées et outlook ne comprend pas qu'il s'agit de 3 personnes différentes

Enfin est-il possible de rajouter une ligne de code pour aller chercher des fichiers dans un dossier sur mon pc (des dossiers avec un nom spécifique comprenant les infos contenues dans les cellules ThisWorkbook.Worksheets("Informations").Range("C3") & ThisWorkbook.Worksheets("Informations").Range("K7") ) ?

Merci d'avance 😊

Sub envoyerParMailBis()
Dim oOutlook As Object
Set oOutlook = CreateObject("Outlook.Application")

Dim oMail As Object
Set oMail = oOutlook.CreateItem(0)

With oMail

Dim oObjetWord As Object
Set oObjetWord = .GetInspector.WordEditor

.To = "mail1"
.CC = "mail2" & "mail3" & "mail4"
.Subject = "Envoi flacon " & ThisWorkbook.Worksheets("Informations").Range("C3") & ThisWorkbook.Worksheets("Informations").Range("K7")
.Body = ActiveCell
Selection.Copy
oObjetWord.Range(0).Paste

.Display
End With
End Sub
 

Discussions similaires

Réponses
2
Affichages
657

Statistiques des forums

Discussions
315 090
Messages
2 116 106
Membres
112 661
dernier inscrit
ceucri