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.

Rechercher des sujets similaires à "envoi mail vba declaration variable"