Envoi mail avec plage de cellule dans coprs

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
 

j_lestrat

XLDnaute Nouveau
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
 

j_lestrat

XLDnaute Nouveau
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

  • RT3.zip
    48.3 KB · Affichages: 43
  • RT3.zip
    48.3 KB · Affichages: 49
  • RT3.zip
    48.3 KB · Affichages: 48
G

Guest

Guest
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:

j_lestrat

XLDnaute Nouveau
Re : Envoi mail avec plage de cellule dans coprs

:confused:
J'ai essayer avec ce code mais j'ai toujours un pb : "erreur automation".
Je ne comprends pas d'ou ça peut venir.
 

Pièces jointes

  • RT3.zip
    47.3 KB · Affichages: 44
  • RT3.zip
    47.3 KB · Affichages: 42
  • RT3.zip
    47.3 KB · Affichages: 39
G

Guest

Guest
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
 

Discussions similaires

Réponses
16
Affichages
663
Réponses
1
Affichages
171
Compte Supprimé 979
C
Réponses
2
Affichages
342

Statistiques des forums

Discussions
312 690
Messages
2 090 983
Membres
104 720
dernier inscrit
drd74