Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

envoyer la feuille active en tant que corps du message

  • Initiateur de la discussion Initiateur de la discussion tinet
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tinet

XLDnaute Impliqué
bonjour à tous,

Comment peut-on traduire au format visual basic la fonction suivante

Envoyer la feuille active en tant que corps du message.

j'ai essayé de faire une macro enregistreur mais ça ne marche pas.

quand je suis sur la feuille Excel.
je sélectionne fichier, puis envoyé vers, puis destinataire.
c'est cette fonction qui m'intéresse.

a+
 
Dernière édition:
Re : envoyer la feuille active en tant que corps du message

Bonjour,

regarde du coté de la méthode "sendmail", exemple ci-dessous envoie le classeur actif :
Code:
ActiveWorkbook.SendMail "destinataire", "monsujet"
bonne journée
@+
 
Re : envoyer la feuille active en tant que corps du message

Bonjour Pierrot,


Merci pour ta réponse, je cherche à envoyer la feuille active en tant que corps du message.
Pas une copie du fichier.

A+
 
Re : envoyer la feuille active en tant que corps du message

Re,

quand je suis sur la feuille Excel.
je sélectionne fichier, puis envoyé vers, puis destinataire.

c'est ce que fait ta manip, elle envoie le classeur en PJ d'un mail, enfin chez moi sous 2003.... regarde peut être dans la FAQ, les pages de MichelXLD🙂, il doit y avoir des choses....
 
Re : envoyer la feuille active en tant que corps du message

Bonjour le fil 🙂,
On a déjà cherché des solutions, mais il me semble que l'on a pas résolu le problème 😱...
En gros, il faudrait copier les cellules, et récupérer celà en HTML pour utiliser HTMLBody, mais je n'ai jamais réussi à récupérer la version HTML en utilisant la méthode GetFromClipBoard 🙄...
Tu peux faire une recherche sur ces mots clés, tu verras un peu les pistes qu'on avait suivies 😛...
Bon courage 😎
 
Re : envoyer la feuille active en tant que corps du message

Bonsoir à tous,

Merci pour ceux qui m'ont apporté de l'aide Pierrot, kjin,JNP
En cherchant voilà ce que j'ai fini par trouver la formule fonctionne.
j'ai cependant besoin encore de votre aide.

j'avais positionné sur ma feuille nommée "BEV"
En F2 le sujet du mail
En F5 le message
Et en F11 l'adresse de messagerie.

il faudrait pouvoir réinscrire ceci dans cette programmation.

PHP:
Sub Mail_Sheet_Outlook_Body()
' Don't forget to copy the function RangetoHTML in the module.
' Working in Office 2000-2010
    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With
 
    Set rng = Nothing
    Set rng = ActiveSheet.UsedRange
    'You can also use a sheet name
    'Set rng = Sheets("YourSheet").UsedRange

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
 
    On Error Resume Next
    With OutMail
        .To = ""
        .CC = ""
        .BCC = ""
        .Subject = "Mon BEV"
        .HTMLBody = RangetoHTML(rng)
        .Send   'or use .Display
    End With
    On Error GoTo 0
 
    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With
 
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
Function RangetoHTML(rng As Range)
' Changed by Ron de Bruin 28-Oct-2006
' Working in Office 2000-2010
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook
 
    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
 
    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With
 
    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With
 
    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")
 
    'Close TempWB
    TempWB.Close savechanges:=False
 
    'Delete the htm file we used in this function
    Kill TempFile
 
    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function

Merci le forum
 
Re : envoyer la feuille active en tant que corps du message

Re 🙂,

@ Kjin : Bien vu, je n'avais pas pensé à passer par un enregistrement HTML 😱...

@ Tinet : Pour le sujet et le destinataire, ça se passe ici
Code:
        .To = Range("F11")
        .CC = ""
        .BCC = ""
        .Subject = Range("F2")
mais si ils sont sur la même feuille, tu va les retrouver dans ton tableau 🙄...
Par contre, tu peux pas avoir le beurre et l'argent du beurre 😛, le corps de message étant ton tableau
Code:
        .HTMLBody = RangetoHTML(Rng)
tu peux difficilement ajouter du texte. HTML étant (de mémoire) balisé avant et après, une concaténation ne fonctionnera pas 😛... Il va falloir faire une insertion au bon endroit dans ton HTML en détectant l'emplacement des bonnes balises, pas facile 🙄...
Le plus logique est de trouver le bon formatage de F5 (certainement fusionné) pour que ton message apparaisse correctement 😉...
Bon courage 😎
 
Re : envoyer la feuille active en tant que corps du message

Bonjour JNP le forum

Merci, c'étais tout simple.

je vais garder le beurre, pour le message je peux éventuellement rajouter sur la feuille


a+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
444
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…