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 :

envoi "non automatique" d'un doc Excel via email Lotus


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut envoi "non automatique" d'un doc Excel via email Lotus
    Je veux envoyer mon doc Excel par email Via Lotus mais tout ce que je trouve à date fait un envoi automatique. Je veux pouvoir ajouter des commentaires à mon email. Voici ma sub qui fonctionne super bien sauf que je n'arrive pas à ajouter une ligne de commande qui inscrirait l'adresse courrielle.

    J'essai de garder ca le plus simple possible car je fais des macros depuis 2 semaines seulement... Je ne suis donc pas très technique encore

    J'ai essayé d'ajouter une ligne recipient = "monadresse@email.com" sans succès. J'imagine que je n'ai pas défini recipient avant... Quelqu'un peut-il compléter ma macro?

    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
    Sub Emailavisabrégé()
     
     
    police = Range("E7").Value
    nom = Range("D15").Value
    ActiveSheet.Protect
    ChDir "C:\Temp"
    ActiveWorkbook.SaveAs Filename:="C:\Temp\" & police & nom & ".xls", _
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWindow.DisplayGridlines = False
    Application.Dialogs(xlDialogSendMail).Show
     
     
    End Sub

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Salut

    Ci dessous le code que j'utilise pour envoyer un fichier a partir d'excel.
    On peut choisir le destinataire, le sujet, le message et les fichiers a joindre

    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
     
    Public Sub MailLotus(ByVal MailDestinataire As String, ByVal Sujet As String, ByVal CorpsMessage As String, _
                    ByVal FichierJoint As String)
     
    On Error GoTo Gerreur
     
    'Dim session As Domino.NotesSession
    Dim Session As Object
    Dim db As Object
    Dim doc As Object
    Dim attachme As Object
    Dim EmbedObj As Object
    Dim attachment() As String
    Dim i As Integer
     
    Set Session = CreateObject("notes.notessession")
    Set db = Session.GETDATABASE("", "")
    Call db.OPENMAIL
     
    Set doc = db.CREATEDOCUMENT
     
    With doc
        .Form = "Memo"
        .AltFrom = Session.UserName
        .BGTableColor = "bg_4"
        .logo = "StdNotesLtr17"
        .ReturnReceipt = 0
        .UseApplet = "True"
        .DefaultMailSaveOptions = 1
        .Encrypt = 0
        .Sign = 0
        .EnterSendto = MailDestinataire
        .SendTo = MailDestinataire
        .Subject = Sujet
        .body = CorpsMessage
        .from = Session.COMMONUSERNAME
        .posteddate = Now
        .SaveMessageOnSend = True
    End With
     
    If FichierJoint <> "" Then
        attachment = Split(FichierJoint, ";")
        For i = 0 To UBound(attachment)
            Set attachme = doc.CREATERICHTEXTITEM("Attachment")
            Set EmbedObj = attachme.embedObject(1454, "", attachment(i), "Attachment") 'Attachment
     
        Next i
    End If
     
    Call doc.SEND(False)
     
    Exit Sub
    Gerreur:
    MsgBox Err.Number & " : " & Err.Description, vbCritical, "Erreur"
     
    End Sub
    Jérôme

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Bonjour,
    Voila celle que j'utilise, c'est a peu de chose pres la meme que celle de jfontaine sauf que on n'est pas oblige d'avoir lotus ouvert et que le corps du message est en RichText, donc possiblite de retour a la ligne ou de mettre des liens hypertextes (une textbox permet de faire ca facilement).
    Recipient peut etre un string ou un tableau de string.

    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
    Public Function fctSendLotusMail(Subject As String, Attachment As String, Recipient, SaveIt As Boolean) As Boolean
     
    'Set up the objects required for Automation into Lotus Notes
    Dim Maildb As NotesDatabase    'The mail database
    Dim UserName As String    'The current users notes name
    Dim MailDoc As Object    'The mail document itself
    Dim AttachME As Object    'The attachment richtextfile object
    Dim oSession As NotesSession
    Dim dbDirectory As NotesDbDirectory
    Dim EmbedObj As Object    'The embedded object (Attachment)
     
    Dim objNotesField As Object 'Mail message object
    On Error GoTo ErrHandle
     
    'start lotus note session
    Set oSession = New NotesSession
     
    'enter password into Lotus
    oSession.Initialize (pwd)
     
    'Session defaut name
    UserName = oSession.UserName
     
    'open mail base using default server
    Set dbDirectory = oSession.GetDbDirectory("")    'server address, if only one let ""
    Set Maildb = dbDirectory.OpenMailDatabase
     
    'create mail form
    Set MailDoc = Maildb.CreateDocument()
     
    MailDoc.AppendItemValue "Subject", Subject
    MailDoc.AppendItemValue "SendTo", Recipient
     
     
    'mail text
    Set objNotesField = MailDoc.CreateRichTextItem("Body")
    With objNotesField
    .AppendText MailText
    .AddNewLine 2
    .AppendText "***************************************************"
    .AddNewLine 2
    .AppendText Signature
    End With
     
    'file attachment
    If Attachment <> "" Then
    Set AttachME = MailDoc.CreateRichTextItem("Attachment")
    Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment, "Attachment")
    End If
     
    'send mail
    If SaveIt = True Then MailDoc.SaveMessageOnSend = SaveIt    'true => save in sentbox
     
    Call MailDoc.Send(False) 'must be false for unknown reason
     
    GoTo ExitHandle
     
    ErrHandle:
    MsgBox Err.Description
    fctSendLotusMail = False
     
     
    ExitHandle:
    fctSendLotusMail = True
    'free memory
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set oSession = Nothing
    Set dbDirectory = Nothing
    Set EmbedObj = Nothing
    End Function
    La variable pwd contient le mot de passe de la session lotus (variable globale car je l'utilise pour envoyer des paquets de 80 mails mais tu peux la mettre en argument de la fonction).
    Il faut activer la librairie Lotus Domino Object dans les references (par defaut le fichier correspondant est dans lotus\notes\domobj.tlb)

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut la suite...
    Es-ce que quelqu'un connait une facon simple de prendre mon tout petit VBA de 10 lignes qui fonctionne à merveille que Lotus soit ouvert ou non afin qu'on ajoute le destinataire sans que j'ai à tout changer, ajouter des DIM, des SET, ect.. ?


  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Je ne pense pas que tu puisses utiliser les fonctions standard d'envoi de mail avec lotus Notes.
    Du moins si cela fonctionne, tu ne pourra pas avoir toutes les fonctionnalitées puisque Notes n'étant pas basé sur les protocole POP et SMTP.
    Sauf erreur de ma part
    Jérôme

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

Discussions similaires

  1. [XL-2002] Mise a jour automatique d'un master fichier Excel via d'autres fichiers filles Excel
    Par magninde dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/05/2009, 14h08
  2. Réponses: 3
    Dernier message: 20/01/2007, 20h36
  3. [débutant] manipulation de doc Excel via C++
    Par htcrusoe dans le forum C++
    Réponses: 4
    Dernier message: 17/03/2005, 19h57

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