IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Intégrer les cellules d'une page Excel dans le corps d'un mail + envoyer auomatiquement le mail [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Points : 24
    Points
    24
    Par défaut Intégrer les cellules d'une page Excel dans le corps d'un mail + envoyer auomatiquement le mail
    Bonjour à tous,

    Je realise une macro qui doit envoyer automatiquement des mails en reprenant les destinatataires qui sont dans un fichier Excel et copier coller la valeur des cellules C10 à C39 dans le corps du mail...mais je ne sais pas du tout comment faire pour intégrer ces valeurs...Voici un exemple du code actuel.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Sub Send_Test()
     
     
    Set objOL = CreateObject("Outlook.Application")
     
    Set objMail = objOL.CreateItem(olMailItem)
     
     
    With objMail
     
        .to = Cells(8, 6)
     
        .CC = Cells(9, 6)
     
        .Subject = "Copier les cellules dans l'objet du mail et envoyer le message automatiquement"
     
        .Body = "Bonjour," & Chr(13) & Chr(13) & _
            "Je souhaiterais ajouter le contenu des cellules C10 à C39 ci dessous: " & _
            Chr(13) & Chr(13) & "J'aimerai également envoyer le mail automatiquement sans avoir le message 'A Program is trying to automatically send e-mail on your behalf' " & _
            Chr(13) & Chr(13) & "Merci beaucoup"
        .Send
     
     
     
    End With
     
     
    ActiveWorkbook.Close
     
     
     
    Set objMail = Nothing
     
    Set objOL = Nothing
     
     
    End Sub
    Par ailleurs, lorsque je lance la macro j'ai un message Microsoft Office Outlook, qui me demande si je veux envoyer ou non, et j'aimerais ne pas l'avoir afin d'envoyer automaiquement les mails.

    Merci d'avance de votre aide

  2. #2
    Membre averti Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 339
    Points
    339
    Par défaut
    salut
    pour ta premiere question, je ne vois pas trop le pb :
    pourquoi ne pas intégrer directement le contenu dans la chaine de caractere du "body" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    chaineFinale= "Bonjour," & Chr(13) &  & _
            "Je souhaiterais ajouter le contenu des cellules C10 à C39 ci dessous: "& Chr(13) 
     
    for rowID=10 to 39
       'on insere chaque valeur sur une nouvelle ligne
       chaineFinale= chaineFinale & " - " & Range("C" & rowID) & Chr(13)
    next
     
     
    'on termine la chaine
    chaineFinale=chaineFinale &  Chr(13) & Chr(13) & "J'aimerai également envoyer le mail automatiquement sans avoir le message 'A Program is trying to automatically send e-mail on your behalf' " & _
            Chr(13) & Chr(13) & "Merci beaucoup"
     
    'on l'assigne au corps du message
    .Body =chaineFinale

    ++
    Nico

  3. #3
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    Je fonctionne ainsi (une boucle sur les lignes et une boucle sur colonnes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Sub tri()
    
    'trouver la dernière cellule pour la copie
    
    Sheets("Déjà").Select
    Range("a65536").End(xlUp).Select
    ActiveCell.Offset(rowoffset:=1, columnoffset:=0).Activate
    
    'sélectionner pour copie
    Sheets("En cours").Select
    Range("a65536").End(xlUp).Select
    addcol = ActiveCell.Column
    addlig = ActiveCell.Row
    Range("A2:i" & addlig).Select
    
    'ActiveCell.CurrentRegion.Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Déjà").Select
    ActiveSheet.Paste
    Range("a65536").End(xlUp).Select
    ActiveCell.Offset(rowoffset:=1, columnoffset:=0).Activate
    'préparation du mail
    
    Sheets("En cours").Select
    Dim strHTML As String
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    Dim olFormatHTML As String
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    Set OutMail = OutApp.CreateItem(0)
     
     
        SigString = Environ("appdata") & "\Microsoft\Signatures\Sans titre.htm"
     
        If Dir(SigString) <> "" Then
            Signature = GetBoiler(SigString)
        Else
            Signature = ""
        End If
     
        On Error Resume Next
        
    strHTML = ""
    strHTML = strHTML & "<HEAD>"
    strHTML = strHTML & "<BODY>"
    strHTML = strHTML & "Bonjour, <BR><BR>Voici mes notifications<BR><BR>"
    strHTML = strHTML & "<TABLE BORDER>"
     
    For i = 1 To addlig 'nombre de lignes (exemple plage A1:B5)
     
        strHTML = strHTML & "<TR halign='middle'nowrap>"
        For j = 1 To 9 'nombre de colonnes
        strHTML = strHTML & "<TD bgcolor='yellow'align='center'><FONT COLOR='blue'SIZE=3>" _
                & Cells(i, j) & "</FONT></TD>"
        Next j
        strHTML = strHTML & "</TR>"
     
    Next i 
    strHTML = strHTML & "</TABLE>"
     
    strHTML = strHTML & "<BR><BR><BR>" & "Lionel"
    strHTML = strHTML & "</BODY>"
    strHTML = strHTML & ""
    
        
        
        With OutMail
            .To = "wwwww.yyyy@xxxx.be"
            .CC = ""
            .BCC = ""
            .Subject = "Notifications"
            .BodyFormat = olFormatHTML
            .HTMLBody = strHTML
            .Display
        End With
        On Error GoTo 0
     
    Selection.Delete
    Range("A2").Select
    
     
    End Sub

  4. #4
    Membre averti Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Points : 339
    Points
    339
    Par défaut
    par ailleurs, je pense que ta seconde question est un pb de parametrage de sécurité, car il me semble que .display affiche la fenetre outlook du message remplie et il faut cliquer manuellement pour envoyer, alors que .send permet d'envoyer sans voir cette fenetre (en tt cas ca marche comme ca dans mon excel).

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup, Ca fonctionne bien pour l'ajout des valeurs Excel. Il reste plus que le pb lié à l'envoi du mail.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2013
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    En regardant sur le forum j'ai trouvé une solution qui marche. A la place de .send mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            .Display
            SendKeys "%{s}", True
    Merci de votre aide.

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EG] Ecrire dans les cellules d'une feuille Excel depuis SAS
    Par MDsas dans le forum Outils BI
    Réponses: 12
    Dernier message: 15/12/2011, 17h35
  2. Excel/Vba insérer les données d'une feuille excel dans le corps d'un email
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/10/2011, 12h02
  3. Réponses: 1
    Dernier message: 29/01/2010, 16h38
  4. [RegEx] Extraire toutes les cellules d'une page html
    Par Patrick dans le forum Langage
    Réponses: 1
    Dernier message: 16/04/2008, 23h35
  5. inserer les donnees d une feuille excel dans une table sql
    Par josyde2006 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 20/12/2006, 08h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo