Envoi mail avec plage de cellule dans coprs

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 !

j_lestrat

XLDnaute Nouveau
Bonjour,

Je débute en VBA, j'ai lu pas mal de chose sur le forum mais je n'arrive pas a solutionner mon pb :

Je dois envoyer dans le corps de mon mail une feuille excel générée en VBA accompagnée d'un message, à un destinataire dont l'adresse se situe dans une cellule excel.

Je travaille sous Office 2000 et Windows XP PRO.

J'ai essayer avec la fonction Activeworkbook.Envelopevisible = True mais ça ne marche pas... (pas la bonne version xl je pense).

Pouvez vous m'aider ?

Sinon est il possible de paramettrer un message avec la fonction ActiveWorkbook.SendMail ?

Merci d'avance pour vos réponses
 
Re : Envoi mail avec plage de cellule dans coprs

Merci
Mais ce qui me bloque réellement c'est de pourvoir mettre des cellules dans le corps du mail. Quand je mets le code suivant j'ai une erreur d'incompatibilité de type...

With MItem
.To = Sheets("Etat").Cells(i, 10)
.Subject = "texte sujet"
.Body = Range("A1:E13").Value
.Send
End With
 
Re : Envoi mail avec plage de cellule dans coprs

Le voici
L'objet est de relancer des structures en fonction des réponses déjà fournies ou non.
Sur la feuille 2008 : ce que je saisie mensuellement
Sur la feuille Etat : le suivi
Sur la feuille Relance : ce que je veux envoyer
Merci de ton aide
 

Pièces jointes

Re : Envoi mail avec plage de cellule dans coprs

bonjour J_Lestrat,

Tu peux essayer avec une fonction comme celle-ci, qui concatène le texte affiché des cellules avec une tabulation entre chaque cellule et un saut de ligne entre chaque ligne.

Code:
Function Texte() As String
    Dim c As Range
    Dim r As Range
    Dim t As String
    t = ""
    For Each r In Range("A1:E13").Rows
        For Each c In r.Cells
            t = t & c.Text & vbTab
        Next c
        t = Left(t, Len(t) - 1)
        t = t & vbNewLine
    Next r
    t = Left(t, Len(t) - 1)
    Texte = t
End Function

Ensuite dans le code de la macro Mail:

Dim LeTexte as string
LeTexte=Texte()

With MItem
.To = Sheets("Etat").Cells(i, 10)
.Subject = "texte sujet"
.Body = LeTexte
.Send
End With

A bientôt
 
Dernière modification par un modérateur:
Re : Envoi mail avec plage de cellule dans coprs

RE,

N'ayant pas outlook à la maison, je ne peux pas tester mais:

1 - Erreur de syntaxe: j'avais oublié le e final (LeTexte)

Code:
With MItem
.To = Sheets("Etat").Cells(i, 10)
.Subject = "Relance"
.Body = LeText[SIZE=3][COLOR=red]e[/COLOR][/SIZE]
.Send
End With

2 - en ce qui concerne l'erreur automation elle peut provenir de beaucoup de choses, notament la création de l'objet Outlook.Application ou de la méthode createItem.

Désolé, de ne pouvoir t'en dire plus.

A bientôt
 
- 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
1
Affichages
416
Compte Supprimé 979
C
Réponses
2
Affichages
924
Réponses
6
Affichages
816
Retour