J'essaye de creer uen macro pour envoyer un email (outlook 2003) avec le contenu de certaines cellules (si elles ne sont pas vides) de la page de mon fichier Excel (Exxcel 2003).
Je recois chaque fois un message d'erreur pour la ligne:
Msg = Msg & Range("b1:c100").Select
Que j'ai ensuite changée en (j'ai aussi essayer de nommer "liste" la zone de texte à envoyer):
Msg = Worksheets("EDI GATE OUT EXP").Shapes("b1:c60").TextFrame.Characters.Text
Voici la macro complete:
[i]Sub Macro2()
'
' Macro2 Macro
' Macro recorded 10-06-2010 by Nathalie
'
'
Sheets("EDI GATE IN EMPTY").Select
Range("B1").Select
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
MailAd = Range("f2")
Subj = Range("f4")
Msg = Msg & Range("b1:c100").Select
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End Sub
Sub Macro2()/i
Mais ca ne passe toujours pas. Merci d'avance pour votre aide.
Bonjour,
en fait, ma variable "TEXTE" correspondait à MSG dans ton code.. il faut que tu écrives :
J'ai réécrit le code .. teste le
Sub Macro2()
Sheets("EDI GATE IN EMPTY").Select
Range("B1").Select
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
Dim Maplage As Range
Set Maplage = Range("B1:B10") 'definition de la plage contenant le Message
MailAd = Range("f2")
Subj = Range("f4")
'boucle qui récupère le texte du message
For Each Cell In Maplage 'dans chaque cellule de MaPlage...
Msg Msg & " " & Cell.Value ' Message Message + Valeur de ma cellule
Next 'Suite de la boucle
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
Sheets("GATE OUT EXP").Select
Range("a3").Select
End Sub
J'ai donc essayé de l'inclure dans la Macro, ce qui me donne ceci:
Sub Macro2()
Sheets("EDI GATE IN EMPTY").Select
Range("B1").Select
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
Dim Maplage As Range
Dim Texte As String
MailAd = Range("f2")
Subj = Range("f4")
Msg Msg & Set Maplage Range("B1:B10")
For Each Cell In Maplage
Texte = Texte & " " & Cell.Value
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
Sheets("GATE OUT EXP").Select
Range("a3").Select
End Sub
Mais ca ne passe toujours pas et je ne réussis toujours pas à localiser le problème. Peux-tu m'aider stp?
J'ai encore un tout petit souci, un détail!
Je pensais que le contenu de chaque cellule occuperait une ligne de mon message (donc renvoi à la ligne après chaque contenu de cellule) mais là, la macro me donne toutes informations de ma plage de données en un seul bloc.
Pour faire un retour à la ligne il faut utiliser l'instruction "vbCrLf"
ce qui donne dans ton code (pour la partie message)
'boucle qui récupère le texte du message
For Each Cell In Maplage 'dans chaque cellule de MaPlage...
Msg Msg & vbCrLf & Cell.Value ' Message Message + Valeur de ma cellule
Next 'Suite de la boucle
en ajoutant ce code => "%0D%0A" ça fonctionnera mieux
'boucle qui récupère le texte du message
For Each Cell In Maplage 'dans chaque cellule de MaPlage...
Msg Msg & " " & Cell.Value & "%0D%0A" ' Message Message + Valeur de ma cellule
Next 'Suite de la boucle
je ne vois pas d'où vient ton problème.
je viens de retester le code
Sub Envoi_Mail()
Sheets("EDI GATE IN EMPTY").Select
Range("B1").Select
Dim MailAd As String
Dim Msg As String
Dim Subj As String
Dim URLto As String
Dim Maplage As Range
Set Maplage = Range("B1:B10") 'definition de la plage contenant le Message
MailAd = Range("f2")
Subj = Range("f4")
'boucle qui récupère le texte du message
For Each Cell In Maplage 'dans chaque cellule de MaPlage...
Msg Msg & " " & Cell.Value & "%0D%0A" ' Message Message + Valeur de ma cellule
Next 'Suite de la boucle
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & Msg
ActiveWorkbook.FollowHyperlink Address:=URLto
Sheets("GATE OUT EXP").Select
Range("a3").Select
End Sub
et je ne rencontre aucun souci.
Ton Outlook (ou autre logiciel de méssagerie) est ouvert ?
Tu es bien dans ton classeur lorsque tu lances le code ?
As-tu essayé en mode pas à pas pour voir d'où viendrait le pb ?(les valeurs de tes variables sont-elles bonnes ?)