Envoyer le contenu d'une feuille par mail

Bonjour,

J’envoie, par le biais d'un bouton ActiveX, ma feuille en cours par mail.

J'utilise ce code mais qui n'est pas tout a fait adapté a mon besoin :

    Dim chemin As String, fichier As String

    chemin = ThisWorkbook.Path
    fichier = chemin & "\" & "METEO" & ".csv"

MsgBox "La METEO est prêt à être envoyée."

    ThisWorkbook.Sheets("METEO").Copy
    ActiveWorkbook.SaveAs Filename:=fichier

    Dim MonOutlook As Object
    Dim MonMessage As Object

    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)

        MonMessage.To = ""
        MonMessage.Cc = ""
        MonMessage.Subject = ""
        MonMessage.body = "Bonjour," & _
                    Chr(13) & Chr(13) & "Veuillez trouver, ci-joint, la meteo ." & _
                    Chr(13) & Chr(13) & "Bonne réception."

        MonMessage.Attachments.Add ActiveWorkbook.FullName
        MonMessage.display

    ActiveWorkbook.Close

    Set MonOutlook = Nothing

J aimerai, si possible:

Juste envoyer un range spécifique de ma feuille en cours

Juste effectuer un copier/coller du contenu dans mon mail ( pas en pj mais directement dans le message)

Pouvez vous m aider ?

Merci

Bonjour Lacrouts, Bonjour le Forum !

J aimerai, si possible:

C'est tout à fait possible mais nous aurions besoin que tu joigne un fichier exemple pour qu'on connaisse les références de tes plages et des tes feuilles

Bonjour,

Juste envoyer un range spécifique de ma feuille en cours

Juste effectuer un copier/coller du contenu dans mon mail ( pas en pj mais directement dans le message)

supprime alors

MonMessage.Attachments.Add ActiveWorkbook.FullName

et ajoute ici les cellules concernées (range("XX") :

MonMessage.body = "Bonjour," & _
                    Chr(13) & Chr(13) & "Veuillez trouver, ci-joint, la meteo ." & range("XX") & _
                    Chr(13) & Chr(13) & "Bonne réception."

edit : mais comme dit Juice, joins un fichier pour en savoir davantage sur ta demande.

J ai modifié le code tel quel:

   Dim chemin As String, fichier As String

    chemin = ThisWorkbook.Path
    'fichier = chemin & "\" & "METEO SAN" & ".csv"

MsgBox "La METEO est prêt à être envoyée."

    'ThisWorkbook.Sheets("METEO_SAN").Copy
    'ActiveWorkbook.SaveAs Filename:=fichier

    Dim MonOutlook As Object
    Dim MonMessage As Object

    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)

        MonMessage.To = ""
        MonMessage.Cc = ""
        MonMessage.Subject = ""
        MonMessage.body = "Bonjour," & _
                    Chr(13) & Chr(13) & "Veuillez trouver, ci-joint, la meteo ." & Range("A1:G83") & _
                    Chr(13) & Chr(13) & "Bonne réception."

        MonMessage.display

    ActiveWorkbook.Close

    Set MonOutlook = Nothing

Mais j ai une erreur d exécution '13': Incompatibilité de type

sur les lignes

       MonMessage.body = "Bonjour," & _
                    Chr(13) & Chr(13) & "Veuillez trouver, ci-joint, la meteo ." & Range("A1:G83") & _
                    Chr(13) & Chr(13) & "Bonne réception."

Je vais essayer de vous envoyer un exemple mais il faut que je purge toutes mes données pour des raisons confidentielles.

Mais dans l idée, en gros, je souhaite juste envoyer le contenu de ma feuille en cours "A1:G83" via mail et ce contenu collé directement dans le message.

Re !

Avec ce bout de code trouvé sur le net et légèrement modifié, tu peux créé une image de ta plage !

Sub Create_Image()
Dim Wsh As Worksheet, Sh As Shape, myplage As Range
Range("A1:G83").Select
With Selection.Interior
    .ThemeColor = xlThemeColorDark1
End With
Set Wsh = Worksheets("Feuil1")
Set Sh = Wsh.Shapes.AddShape(msoShapeRectangle, 0, 0, 10, 10)
Set myplage = Wsh.Range("A1:G83")
myplage.Copy
Sh.Select
Wsh.Paste
Sh.Delete
Range("A1:G83").Select
Application.CutCopyMode = False
With Selection.Interior
    .Pattern = xlNone
End With
End Sub

La suite, se serais de la mettre dans le presse papier pour l'enregistrer sous et mettre ce chemin dans ton email

Mais sa je sais pas du tout faire :<

Il y a plusieurs façons de faire :

  • une image, cela a l'avantage de ne pas pouvoir la modifier, perso je n'aime pas trop
  • un texte brut
  • un texte mis en forme
  • un texte copié/collé par sendkeys

En voyant ta plage, je suppose que tu souhaites une mise en forme genre tableau ou lignes/colonnes

Je te propose alors le dernier cas

Voir un exemple joint (j'ai appelé la zone ici corpsdumail)

en gros, au lieu de

        MonMessage.body = "Bonjour," & _
                    Chr(13) & Chr(13) & "Veuillez trouver, ci-joint, la meteo ." & Range("A1:G83") & _
                    Chr(13) & Chr(13) & "Bonne réception."

        MonMessage.display

tu mets

    Range("A1:G83").Copy
    MonMessage.display
    Application.Wait (Now + TimeValue("0:00:01"))
    SendKeys "^v", True

mais il faudrait ajouter dans la range copiée le texte de début et de fin comme sur l'exemple joint ci-dessus

Merci!

Jy suis presque!

J'ai modifié le code ainsi

Private Sub CommandButton22_Click()

    Dim chemin As String

    chemin = ThisWorkbook.Path

MsgBox "La METEO est prête à être envoyée."

    Dim MonOutlook As Object
    Dim MonMessage As Object

    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)
        MonMessage.body = "Bonjour, vous trouverez ci dessous la METEO" & Chr(10) & Chr(10)
        MonMessage.To = ""
        MonMessage.Cc = ""
        MonMessage.Subject = "METEO "

    Range("A1:G83").Copy
    MonMessage.display
    Application.Wait (Now + TimeValue("0:00:01"))

    SendKeys "^v", True

    Set MonOutlook = Nothing

End Sub

MAIS Je n 'arrive pas a positionner mon texte "Bonjour, vous trouverez ci dessous la METEO" avant le copier/coller de mon tableau

J'ai tenté avec Chr(10) mais ca marche po

Une idée?

ajoute ce texte dans la feuille excel et copie le avec le tableau !

ce que je fais souvent, c'est un onglet séparé reprenant le texte d'intro, les données et le texte final

Effectivement c'est plus simple ! pourquoi se compliquer la vie !!

Tout fonctionne nickel, merci

Maintenant j aimerai jouer cet excel en tache planifiée tout en jouant mon bouton "ENVOIE MAIL".

C'est possible chef ?

Ouvre un autre sujet sur les tâches planifiées, je ne suis pas réellement familier avec cela (pas comme les mails)

Et solde ce topic, ce sera préférable.

OK je ferme le sujet, un grand merci a toi en tout cas!!

Rechercher des sujets similaires à "envoyer contenu feuille mail"