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

VB 6 et antérieur Discussion :

[Excel/Outlook] envoi de mails


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Par défaut [Excel/Outlook] envoi de mails
    Bonjour,

    j'ai une question :

    voici la forme d'un fichier EXCEL SGBD ici 4 colonnes (extrait d'un SGBD)
    id user bureau e-mail
    BLS0001 TORTORA Davide A1-0A209 davide.ramini@toto.fr
    BDS0302 DUBERNET Patrick A1-0A211 patrick.dunet@titi.fr
    BLS0003 MIHALCEA ionut A1-1D234 ionut.kéké@tata.fr
    BDS0425 HOLDER Mathieu A1-2C211 mathieu.poumpoum@mumu.fr

    J'aimerai faire une macro sous Excel qui ferait :

    1 - lit le fichier SGBD et pour chaque ligne, pour chacune, il crée un message pour chaque destinataire
    3 - met en objet "voir plus bas second post"
    4 - dans le corps donnes les éléments extrait de la SGBD / user.
    5 - active le récépicé
    6 - active l'option (d'accord, pas d'accord : utilisé le bouton de vote)
    7 - envoyer tous les e-mails.

    Mais je ne sais pas encore tout faire.

    Quelqu'un peut-il m'aider?

  2. #2
    Membre confirmé Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Par défaut
    Je reprends.

    En fait, j'ai trouvé un truc sur Internet qui utilise depuis Excel la référence Outlook.

    Et j'arrive presque à générer complètement le mail.

    J'ai donc :

    - un fichier Excel APPLI avec :
    ¤ un bouton qui lance la génération
    ¤ une cellule qui permet de customiser l'objet du mail
    ¤ plusieurs cellules qui permettent de faire une introduction pour le mail.
    le tout dans la feuille 1.

    - un second fichier Excel SGBD qui contient toutes les informations pour chaque destinataire, voir plus haut (premier post)

    Voilà j'ai un petit pb.
    Comment utiliser l'objet oMail.Body pour écrire dans mon mail toutes les lignes une à une (entre 12 et 36, colonne B) qui se trouve dans APPLI? Comment indexer Body(i) avec i = 1 et i ++ jusqu’à 24, si c’est la solution?

    Puis à la suite j'aimerai utiliser le "même objet (i)" pour ajouter ligne par ligne les informations concernant le destinataire?

    Une idée?

  3. #3
    Membre confirmé Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Par défaut
    Bonjour à tous.

    Plutôt que de tout refaire, j'ai modifier les deux permiers posts à relire plus haut.
    Pouvez-vous m'aider?

    Voici le code du bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public ExcelFileName As String
       Public ExcelFullFileName As String
     
    Sub Groupe7_QuandClic()
    Application.ScreenUpdating = False
     
        ExcelFileName = Sheets(1).Cells(43, 7)
        ExcelFullFileName = Sheets(1).Cells(42, 7) & "\" & Sheets(1).Cells(43, 7)
        'Call functOpenExcelFile(ExcelFullFileName)
        Call SendMail_Outlook
    Application.ScreenUpdating = True
     
    End Sub
    puis les deux fonctions :

    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
    Dim ExcelApp As Excel.Application
    Public Function functOpenExcelFile(PathAndExcelFile As String)
     
        MsgBox "Ouverture du chier SGBD?" & " : " & PathAndExcelFile, vbOKCancel, "Open Reference File"
     
    Set ExcelApp = CreateObject("Excel.Application")
     
    With ExcelApp
        .Workbooks.Open PathAndExcelFile
        .Visible = True
    End With
     
    'Set ExcelApp = Nothing
     
    Set functOpenExcelFile = ExcelApp
    End Function
    et

    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
    Option Explicit
        Dim ol As New Outlook.Application
        Dim olmail As MailItem
        Dim CurrFile As String
        Dim MailDestinataire As String
        Dim MailObjet As String
        Dim MailCorps As String
        Dim LingesCorps As Integer
     
        Dim appExcel As Excel.Application
        Dim ExcelWorkooks As Excel.Workbooks
        Dim ExcelWorkbook As Excel.Workbook
        Dim sheet As Excel.Worksheet
     
    Public Function SendMail_Outlook()
       Set appExcel = functOpenExcelFile(BoutonAction.ExcelFullFileName)
       LingesCorps = 12
     
       MailDestinataire = appExcel.Sheets(1).Cells(2, 7).Value
       MailObjet = Application.Sheets(1).Cells(9, 2).Value
     
    'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
     
       Set ol = New Outlook.Application
       Set olmail = ol.CreateItem(olMailItem)
       With olmail
          .To = MailDestinataire
          .Subject = MailObjet
     
       End With
     
       With olmail
                 While LingesCorps < 37
                  MailCorps = Application.Sheets(1).Cells(LingesCorps, 2).Value
                .Body = MailCorps & Range("c1").Value & Range("d1").Value & Range("e1").Value
                LingesCorps = LingesCorps + 1
                Wend
          End With
     
       With olmail
          '      .Attachments.Add "c:\data\essai.doc"
          .Display '.Send
    'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
          End With
     
    appExcel.Workbooks.Close
    End Function
     
     
     
    '    Sub Quit_Outlook()
    '    'Demander à Excel de Quitter Outlook
    '      Set myOlApp = CreateObject("Outlook.Application")
    '      myOlApp.Quit
    '    End Sub
    '
    '
    '    Geler la Mise à jour de l'écran pour accélerer le Code VBA
    '    Application.ScreenUpdating = False
    '    'Gèle l'affichage à l'écran: cela accélère le déroulement de la macro.
    '    Application.ScreenUpdating = True
    '    'Gèle l'affichage à l'écran: cela accélère le déroulement de la macro.
    '
    '
    '    Télécharger un Fichier illustrant le fonctionnement de cette macro (et d'autres macros):
    '    Sub Zone_Maj()
    '    'Transforme les cellules de la zone sélectionnée en Majuscules
    '    Sub
    '      For Each Cell In Selection
    '          Cell.Value = UCase(Cell.Value)
    '      Next Cell
    '    End Sub
    Merci

  4. #4
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Si tu le désires, je peux te faire passer une source qui fonctionne très bien pour l'envoi de mail. Cependant je n'utilise pas Outlook.

  5. #5
    Membre confirmé Avatar de Paloma
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 228
    Par défaut
    Bonjour Sytchev3,

    Merci pour votre proposition pourquoi pas.
    Le sujet ne me concerne pas dierctement car j'essaye d'aider un ami mais si ça ne le dérange pas, je pourrais lui proposé ta solution.

    Merci de me mettre un lien sur le forum.
    Bien à vous.

  6. #6
    Membre éclairé Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Par défaut
    Ma source est composée d'une form et de 2 modules. Il faudra donc l'adapter à votre cas mais le mieux est que je vous fasse passer tout cela par votre boite mail.

Discussions similaires

  1. [Outlook] envoie de mail crypté
    Par swissmade dans le forum Outlook
    Réponses: 3
    Dernier message: 24/06/2008, 23h52
  2. Réponses: 2
    Dernier message: 07/12/2007, 17h20
  3. Gérer l'envoi de mail préformaté avec outlook depuis données Excel
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 06/12/2007, 10h52
  4. Envoi de mail depuis Excel 2003 via Outlook 2003
    Par SlySylvain dans le forum Excel
    Réponses: 2
    Dernier message: 19/04/2007, 09h01
  5. [vba excel outlook] envoie de message via vba
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/08/2006, 16h11

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