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 :

VBA: Envoi d'un email à partir d'un menu déroulant [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 4
    Par défaut VBA: Envoi d'un email à partir d'un menu déroulant
    Bonjour à tous,

    Voilà j'ai un fichier fichier VBA qui me permet d'envoyer des mails à partir de LotusNote.
    Auparavant ce fichier était lié à un bouton, qui lorsqu'on cliquait dessus envoyait directement un mail à partir d'une seule et même cellule.? Cela fonctionnait parfaitement.

    Mais voilà mon fichier excel qui se compose de près de 1000 lignes dispose d'une adresse mail par ligne. J'avais pensé dupliquer le bouton en face de chaque ligne de mon fichier Excel à laquelle correspond une adresse mail. L'idée aurait été d'envoyer un mail un une personne au choix rien qu'en cliquant sur le bouton figurant en face de son nom. Mais voilà ....je ne sais pas comment modifier mon fichier VBA dans ce sens....

    Alors je me suis dit que je pouvais peut être y arrivé à partir d'une liste de mails figurant dans un menu déroulant, un message serait directement expédié dès lors qu'une adresse serait sélectionnée.

    Voilà le fichier VBA tel qu'il existe à l'heure actuelle:

    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
    Sub SendNotesMail() 
    'Set up the objects required for Automation into lotus notes 
    Dim Maildb As Object 'The mail database 
    Dim UserName As String 'The current users notes name 
    Dim MailDbName As String 'THe current users notes mail database name 
    Dim MailDoc As Object 'The mail document itself 
    Dim AttachME As Object 'The attachment richtextfile object 
    Dim Session As Object 'The notes session 
    Dim EmbedObj As Object 'The embedded object (Attachment) 
     
    'Start a session to notes 
    Set Session = CreateObject("Notes.NotesSession" ) 
    'Get the sessions username and then calculate the mail file name 
    'You may or may not need this as for MailDBname with some systems you 
    'can pass an empty string 
    UserName = Session.UserName 
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " " ))) & ".nsf" 
    'Open the mail database in notes 
    Set Maildb = Session.GetDatabase("", MailDbName) 
    If Maildb.IsOpen = True Thenhttp://forum.rue-montgallet.com/icones/message/icon17.gif 
    'Already open for mail 
    Else 
    Maildb.OPENMAIL 
    End If 
    'Set up the new mail document 
    Set MailDoc = Maildb.CreateDocument 
    MailDoc.Form = "Memo" 
    MailDoc.Sendto = Range("k4" ).Value   ==> Je crois que c'est ici que doit s'operer le changement mais je n'y arrive pas !!! 
    MailDoc.Copyto = "l'adresse de la personne en copie" '(laisse les "" ) 
    MailDoc.Subject = Range("C4" ).Value 
    MailDoc.ReturnReceipt = "1" 
    ' Construction du corps du message 
    Set objNotesField = MailDoc.createRichTextItem("Body" ) 
    With objNotesField 
    .AppendText "Bonjour," 
    .AddNewLine 2 
    .AppendText "Ci-joint accusé récéption de votre demande." 'tu peux réjouter des lignes 
    .AppendText "texte" 
    .AddNewLine 2 
    .AppendText "Cordialement" 
    .AddNewLine 1 
    .AppendText "LL" 
    .AddNewLine 3 
    End With 
    'Send the document 
    MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder 
    MailDoc.send 0, Recipient 
    'Clean Up 
    Set Maildb = Nothing 
    Set MailDoc = Nothing 
    Set AttachME = Nothing 
    Set Session = Nothing 
    Set EmbedObj = Nothing 
    End Sub
    J'ai passé toute la journée sur les forums mais je n'ai rien trouvé ....

    Quelqu'un aurait il une solution qui me permettrait d'améliorer mon fichier ?

    Merci d'avance,

    Lionel

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

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Par défaut
    Bonjour,

    Pour ta proposition, tu peux choisir une variable pour l'adresse mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim DestinataireMail As String               
    ...
    DestinataireMail = Sheets("Feuilx").Range("K4").Value 
    ...
    Function envoi(img As String, subject As String, DestinataireMail As String) As Boolean
    ...
    MailDoc.Sendto = DestinataireMail

    Voici un petit fichier : sur la feuille 1 se trouve: colonne 1: vide (c'est là que tu cliques) - colonne 2: adresses mail - colonne 3: blabla données
    quand tu double-cliques sur une cellule de la colonne 1, il envoie un mail à l'adresse indiquée dans la colonne suivante. A toi d'adapter.
    Fonctionne avec ce code mis dans feuil1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Fichiers attachés Fichiers attachés

  3. #3
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,

    Une autre piste (que j'utilise pour ouvrir des sites internets listé dans un de mes fichiers)

    J'ai figé les premières lignes et j'y ai placé un bouton, donc toujours visible même quand je suis sur la ligne 564...
    Je récupère l'adresse du site dans la variable Site grace à la cellule active:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Site = ActiveCell.Value
    Concrètement, je me place dans la cellule qui contient le site que je veux ouvrir et je clique sur le bouton (il y a aussi moyen de la faire avec macro évènementielle doubleclick par exemple)

    A+

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 4
    Par défaut
    Merci à vous pour votre aide....
    J'ai pu boucler mon projet grâce à votre aide.
    Pour ceux qui souhaite une copie de mon fichier complété ....n'hesitez pas à me contacter.
    Lionel

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 4
    Par défaut
    Citation Envoyé par Fvandermeulen Voir le message
    Salut,

    Une autre piste (que j'utilise pour ouvrir des sites internets listé dans un de mes fichiers)

    J'ai figé les premières lignes et j'y ai placé un bouton, donc toujours visible même quand je suis sur la ligne 564...
    Je récupère l'adresse du site dans la variable Site grace à la cellule active:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Site = ActiveCell.Value
    Concrètement, je me place dans la cellule qui contient le site que je veux ouvrir et je clique sur le bouton (il y a aussi moyen de la faire avec macro évènementielle doubleclick par exemple)

    A+
    Merci beaucoup

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

Discussions similaires

  1. Selection a partir d'un menu déroulant vers un champs
    Par pony99 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 01/12/2008, 17h36
  2. VBA Access ouvrir 1 form à partir d'1 liste déroulante
    Par bambi8511 dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/07/2007, 18h59
  3. Réponses: 2
    Dernier message: 08/06/2007, 18h00
  4. Réponses: 1
    Dernier message: 01/11/2005, 03h24
  5. [mise à jour d'une iframe à partir d'un menu déroulant]
    Par Lady_jade dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/10/2005, 11h50

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