Envoi Mail VBA déclaration variable
Bonjour,
j'utilise ce code pour l'envoi d'un mail
Dim Fichiers As Variant
Dim i As Integer
Dim OutApp As Object
Dim OutMail As Object
Dim Envoi As String
Dim Copie As String
Dim Objet As String
Dim Intro As String
Dim Corps As String
Dim FP1 As String
Dim FP2 As String
Dim Feuil1 As Worksheets
Dim signature As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Envoi = Range("Envoi_A_Demande_Contrat").Value
' Copie = Range("Copie_Demande_Contrat").Value
' Objet = Range("Objet_Demande_Contrat").Value
' Intro = Range("Intro_Demande_Contrat").Value
' Corps = Range("Corps_Demande_Contrat").Value
'FP1 = Range("F_Politesse_1_Demande_Contrat").Value
'FP2 = Range("F_Politesse_2_Demande_Contrat").Value
'Affiche la boîte dialogue "Ouvrir"
'(C'est l'argument True qui autorise la multisélection)
Fichiers = Application.GetOpenFilename("Tous les fichiers (*.*),*.*", , , , True)
With OutMail
.Display
With OutMail
.To = Range("Envoi_A_Demande_Contrat").Value
.CC = "marc.devaux@fondationopteo.fr"
.Subject = "11-MAS BQV - Dde de contrat " '& Date
.HTMLBody = "<html><body>Florence,</body></html><br>" & _
"<html><body>Voilà une nouvelle demande pour</body></html><br>" & _
"<html><body>Bonne réception,</body></html>" & .HTMLBody
If IsArray(Fichiers) Then
For i = 1 To UBound(Fichiers)
.Attachments.Add Fichiers(i)
Next
End If
.Display
End With
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
et j'ai une erreur sur la déclaration des variables.
j'ai créé un tableau avec l'adresse mail,l'objet,le corps du mail......j'ai ensuite nommé Chaque cellules et je souhaiterais remplacer dans le code de mon envoi mail le texte par le nom de ma cellule.
exemple: remplacé .CC= "marc.devaux@fondationopteo.fr" par .CC="Nom de ma cellule"
remplacé C "11-MAS BQV - Dde de contrat " '& Date par .Subject = "Nom de ma cellule"
j'ai déclaré mes variables mais ensuite je bloque ici Envoi = Range("Envoi_A_Demande_Contrat").Value merci pour votre aide.
Hello,
Range("Envoi_A_Demande_Contrat").Value
Est bien une zone nomée ?
Si oui comporte t-elle-une seule celulle ?
Sinon cette solution moins puriste fonctionne également
.To = sheets(1).range("A1").value
bonsoir Rag02700,
oui c'est une zone nommée et elle comporte seulement une cellule du coup ça devrais me le prendre comme si je déclare directement la référence de la cellule non?
Bonjour,
concernant .To = sheets(1).range("A1").value ca ne fonctionne pas.
Bonjour à tous,
ca y est mon code est fonctionnel je vous le partage
Sub Envoie_Mail_Demande_Contrat_Cliquer()
Dim Fichiers As Variant
Dim i As Integer
Dim OutApp As Object
Dim OutMail As Object
Dim Envoi As String
Dim Copie As String
Dim Objet As String
Dim Intro As String
Dim Corps As String
Dim FP1 As String
Dim FP2 As String
Dim erreur As Integer
On Error Resume Next 'désactivation routine d'erreur
erreur = False
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Envoi = Feuil1.Cells(2, 2).Value
Copie = Feuil1.Cells(2, 3).Value
Objet = Feuil1.Cells(2, 4).Value
Intro = Feuil1.Cells(2, 5).Value
Corps = Feuil1.Cells(2, 6).Value
FP1 = Feuil1.Cells(2, 7).Value
FP2 = Feuil1.Cells(2, 8).Value
'Affiche la boîte dialogue "Ouvrir"
'(C'est l'argument True qui autorise la multisélection)
Fichiers = Application.GetOpenFilename("Tous les fichiers (*.*),*.*", , , , True)
With OutMail
.To = Envoi
.CC = Copie
.Subject = Objet
.HTMLBody = "<html><body>" & Intro & " </body></html><br>" & "<html><body>" & Corps & " </body></html><br>" & "<html><body>" & FP1 & " </body></html><br>" & "<html><body>" & FP2 & " </body></html><br>" & .HTMLBody
If IsArray(Fichiers) Then
For i = 1 To UBound(Fichiers)
.Attachments.Add Fichiers(i)
Next
End If
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
J'aurai juste voulu simplifier le remplissage de mes variables avec le Nom de ma Cellule Nommé au lieu de l'adresse
Feuil1.Cells(2, 2).Value
mais je n'y suis pas parvenu.
Merci à Tous à bientôt.
Si tu veux que j'y regarde post un fichier exemple
car pour moi
Envoi = Range("Envoi_A_Demande_Contrat").Value
est correct
Bonjour,
Merci pour ton aide ca fonctionne comme décrit précédemment et j'ai pas trop de temps en ce moment mais je réessayerai dés que possible pour voir ce qui ne va pas avec une cellule nommée.
bonne journée à bientôt.