Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 22h55   #1
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
Par défaut mail à plusieurs destinataires

bonjour

j'envoie un mail sur un clic bouton dans un form via ce code :

Code :
EnvoiEmail Adresse:="dest1@dom.fr", Objet:="Compte-rendu réunion", Corps:="Vous trouverez en pièce jointe le compte-rendu de la réunion du jour", PJ:="", Cc:=" dest2@dom.fr ", Bcc:=" dest3@dom.fr "

Nous utilisons thunderbird en intranet et ce code fonctionne bien et convient parfaitement, néanmoins, j'aurais besoin d'ajouter un 4eme destinataire, et là je n'ai trouvé de réponse nullepart dans le forum.


J'ai testé plusieurs syntaxes pour séparer des adresses par des points virgules comme sur ma messagerie yahoo mais en vain....


Quelqu'un aurait-il une idée sur la façon d'écrire ça ?


Merci d'avance
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 05h49   #2
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
Bonjour

Sauf à me tromper complètement, je pense que la routine "EnvoiEmail " en est une que vous avez créée.
Je crois que ça va être difficile de vous aider si vous ne nous la montrer pas.

Ceci dit, une piste toute bête :
Faire une seconde ligne d'envoi d'email, avec le quatrième destinataire. Autrement dit, au lieu de faire un seul envoi avec 2 destinataires, on en fait 2 avec un seul.


Code :
1
2
3
EnvoiEmail Adresse:="dest1@dom.fr", Objet:="Compte-rendu réunion", Corps:="Vous trouverez en pièce jointe le compte-rendu de la réunion du jour", PJ:="", Cc:=" dest2@dom.fr ", Bcc:=" dest3@dom.fr "
 
EnvoiEmail Adresse:="dest2@dom.fr", Objet:="Compte-rendu réunion", Corps:="Vous trouverez en pièce jointe le compte-rendu de la réunion du jour", PJ:="", Cc:=" dest2@dom.fr ", Bcc:=" dest3@dom.fr "
Pierre
pier.antoine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 09h34   #3
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
bjr Pier.Antoine,

"EnvoiMail", je l'ai trouvé en fouinant sur le web, car je cherchais une commande simple pour gérer cet envoi de courrier. Il n'y a pas de module ou de fonction annexe et c'est d'ailleurs pour ça que je suis parti sur ce code.

J'avais bien pensé à la solution de rajouter une ligne de commande, mais cela fait partir 2 mails via le client courrier, et impose d'aller chercher une 2eme fois la pièce jointe. Ayant
à faire à des "em....eurs" , j'aimerais autant rester sur une manip la plus directe possible.

Je vais continuer de chercher.

Merci pour ta réponse.
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 09h54   #4
Expert Confirmé
 
Avatar de FreeAccess
 
Homme
Inscription : mars 2006
Messages : 2 309
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 2 309
Points : 2 847
Points : 2 847
Bonjour,

Citation:
...Il n'y a pas de module ou de fonction annexe
....la tu m'étonne.....dans la mesure ou ici nous avons bien à faire à une fonction

Est ce bien ce code que tu utilise
ENVOI AUTOMATIQUE DE MAIL
__________________
FreeAccess
"Petit à petit l'araignée tisse sa toile"
FreeAccess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 10h06   #5
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
Arrrrggghhhhh

J'ai honte, vu que j'avais cherché de multiples solutions je me suis mélangé les crayons.....


voici donc le module "Initmail", et du coup que je vais me plonger dedans pour essayer de trouver la solution moi-même.
Code :
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
 
Option Compare Database
 
' ------------------------------------------------------------------
Option Explicit
' ------------------------------------------------------------------
'Déclaration des tableaux qui recevront les touches à utiliser suivant
' le logiciel de messagerie par défaut du système.
' Déclarés ici, les tableaux ont une portée qui couvre tout le module
Dim TouchesPJ(5) As String, TouchesEnvoi(5) As String
' ------------------------------------------------------------------
' Procédure principale qui compose les éléments du message
' et effectue la demande d'envoi
' c'est cette procédure qui sera appelée par le programme principal (ici Excel)
'
Sub EnvoiEmail(Adresse As String, Objet As String, Corps As String, Optional PJ As String, Optional Cc As String, Optional Bcc As String, Optional Collage As Boolean)
MsgBox "Envoi en cours"
'--------------------------------------------------------------------------------
Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
                        ' composés à partir des arguments fournis à la procédure
Dim i As Integer        ' un compteur
Dim Client As Integer
' la syntaxe de base du mailto est la suivante :
' mailto:dest@domaine.bof?Subject=Le sujet du message _
                         &Body=Le corps du message _
                         &cc=Destinataire copie _
                         &bcc=Destinataire copie cachée
 
HyperLien = "mailto:" & Adresse & "?"       ' Le ? introduit les arguments
HyperLien = HyperLien & "Subject=" & Objet & " (à " & Time() & ")"
If Not Collage Then ' (en cas de collage, le corps est ajouté juste avant le collage)
    HyperLien = HyperLien & "&Body=" & Corps    ' le & sépare les arguments
End If
If Cc <> "" Then HyperLien = HyperLien & "&cc=" & Cc
If Bcc <> "" Then HyperLien = HyperLien & "&bcc=" & Bcc
 
' Activation du lien
'
'ActiveWorkbook.FollowHyperlink HyperLien    ' Pour Excel (les autres doivent être en commentaire)
'ThisDocument.FollowHyperlink HyperLien      ' Pour Word (les autres doivent être en commentaire)
Application.FollowHyperlink HyperLien       ' Pour Access
 
 
Attendre 2
If Collage Then
    ' colle puis insère le texte du message au début du message
    SendKeys "+{INSERT}", True  ' collage
    SendKeys "^{HOME}", True    ' début du message
    SendKeys Corps, True        ' envoi du corps du message
    SendKeys "{Enter}", True    ' ligne suivante
End If
' modifier la valeur ci-dessous pour adapter le code à votre client mail
Client = 5  ' 1=Outlook Express
            ' 2=Mozilla Thunderbird
            ' 3=Office Outlook
            ' Suivent des configurations pour d'autres clients de messagerie
            ' trouvées sur le forum
            ' 4=Une autre version pour Outlook2003
            ' 5=Incredimail
            ' 6=Office Outlook 2007
            ' 7=...à vous d'ajouter d'autres clients
 
Select Case Client      ' appel du chargement des tableaux des touches selon le
                        ' client de messagerie indiqué
    Case 1
        OutLookExpress
    Case 2
        MozillaThunderbird
    Case 3
        Office2003OutLook
    Case 4
        Office2003OutLookV2
    Case 5
        Incredimail
    Case 6
        Office2007OutLook
    Case Else
        MsgBox "Aucun client de messagerie connu n'est indiqué" & vbCrLf & _
        "Vous devez terminer l'envoi du mail manuellement"
        Exit Sub
End Select
 
' Le traitement de la pièce jointe ne s'exécute que si la procédure à reçu qqchose
' dans l'argument PJ (Optional<=>Facultatif)
 
If PJ <> "" Then
    For i = 1 To TouchesPJ(0)   ' dans TouchesPJ(0) on a stocké le nombre de touches
                                ' à envoyer au programme pour joindre une pièce
        SendKeys TouchesPJ(i), True     ' Envoie les touches d'ajout d'1 pièce jointe
        Attendre 1                        ' temporise (à règler éventuellement)
    Next i
    SendKeys PJ, True       ' A ce stade le programme Attend un nom de fichier
                            ' on lui envoie
    Attendre 1                ' on temporise
    SendKeys "{ENTER}", True    ' et on valide ce nom de fichier
    Attendre 1
End If
For i = 1 To TouchesEnvoi(0)
    SendKeys TouchesEnvoi(i), True  ' on envoie le message
    Attendre 1
Next i
End Sub
 
Sub Attendre(Secondes As Single)
' Cette procédure temporise pendant le nombre de secondes qu'on lui transmet en argument
Dim Début As Long, Fin As Long, Chrono As Long
Début = Timer
Fin = Début + Secondes
Do Until Timer >= Fin
    DoEvents
Loop
End Sub
 
 
Sub OutLookExpress()
'Initialisation des tableaux de touches pour Outlook Express
    ' Pour une pièce jointe
    TouchesPJ(0) = 2        ' Nombre de touches nécessaires
    TouchesPJ(1) = "%i"     ' Appel du menu Insertion par la touche Alt-i
    TouchesPJ(2) = "p"      ' appel du sous-menu pièce par la touche p
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 1     ' Nombre de touches nécessaires
    TouchesEnvoi(1) = "%s"  ' Envoi du message avec Alt-s
End Sub
 
Sub MozillaThunderbird()
'Initialisation des tableaux de touches pour Mozilla Thunderbird
    ' Pour une pièce jointe
    TouchesPJ(0) = 4        ' Nombre de touches nécessaires
    ' il semble que l'appel par Alt-f du menu fichier ne marche pas
    ' à tous les coups donc (merci à FRED65200)
    TouchesPJ(1) = "{F10}"     ' Appel des menus par {F10}
    TouchesPJ(2) = "f"     ' Appel du menu Fichier par la touche f
    TouchesPJ(3) = "j"      ' appel du sous-menu Joindre par la touche j
    TouchesPJ(4) = "f"      ' appel du sous-sous-menu Fichier par la touche f
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 4             ' Nombre de touches nécessaires
    TouchesEnvoi(1) = "%xf"         ' choisit l'expéditeur qui commence par F
    TouchesEnvoi(2) = "^{ENTER}"    ' Envoi du message avec Ctrl-Entrée
    TouchesEnvoi(3) = "{DOWN}"      ' Flèche bas pour choisir l'option "Envoyer en HTML seul"
                                    ' dans la boite dialogue
    TouchesEnvoi(4) = "{ENTER}"     ' confirmation par Entrée
End Sub
 
Sub Office2003OutLook()
'Initialisation des tableaux de touches pour Office Outlook 2003
    ' Pour une pièce jointe
    TouchesPJ(0) = 2        ' Nombre de touches nécessaires
    TouchesPJ(1) = "%i"     ' Appel du menu Insertion par la touche Alt-i
    TouchesPJ(2) = "f"      ' appel du sous-menu fichier par la touche f
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 1     ' Nombre de touches nécessaires
    TouchesEnvoi(1) = "%v"  ' Envoi du message avec Alt-v
End Sub
 
Sub Incredimail()
    ' Contribution de KOLOCO pour Incredimail
    ' Initialisation des tableaux de touches pour Incrédimail
    ' Pour une pièce jointe
    TouchesPJ(0) = 1        ' Nombre de touches nécessaires
    TouchesPJ(1) = "^+a"    'Appel du menu Insertion Fichier par la touche Ctrl+Shift+A
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 1     ' Nombre de touches nécessaires
    TouchesEnvoi(1) = "%s"  'Envoi du message avecAlt-s
End Sub
 
Sub Office2003OutLookV2()
    ' Version corrigée par CLARK1978 à essayer si la version d'origine ne gère pas
    ' la touche Alt-i correctement
    ' Initialisation des tableaux de touches pour Office Outlook 2003
    ' Pour une pièce jointe
    TouchesPJ(0) = 3            ' Nombre de touches nécessaires
    TouchesPJ(1) = "%a"         'Appel du menu Insertion par la touche Alt-a (affichage)
    TouchesPJ(2) = "{RIGHT}"    ' puis flèche à droite
    TouchesPJ(3) = "f"          ' appel du sous-menu fichier par la touche f
    ' Pour l 'envoi du mail
    TouchesEnvoi(0) = 1         ' Nombre de touches nécessaires
    TouchesEnvoi(1) = "%v"      ' Envoi du message avecAlt-v
End Sub
 
Sub Office2007OutLook()
    ' Contribution de PC512 pour Office 2007
    ' Initialisation des tableaux de touches pour Office Outlook 2007
    ' Pour une pièce jointe
    TouchesPJ(0) = 2        ' Nombre de touches nécessaires
    TouchesPJ(1) = "%s"     ' Appel du menu Insertion par la touche Alt-i
    TouchesPJ(2) = "jf"     ' appel du sous-menu fichier par la touche f
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 1     ' Nombre de touches nécessaires
    TouchesEnvoi(1) = "%v"  'Envoi du message avecAlt-v
End Sub
 
Sub Office2000OutLook()
    ' Contribution de TANATLOC92 pour Office Outlook 2000
    ' Initialisation des tableaux de touches pour Office Outlook 2000
    ' Pour une pièce jointe
    TouchesPJ(0) = 2 ' Nombre de touches nécessaires
    TouchesPJ(1) = "%i" ' Appel du menu Insertion par la touche Alt-i
    TouchesPJ(2) = "f" ' appel du sous-menu fichier par la touche f
    ' Pour l'envoi du mail
    TouchesEnvoi(0) = 1 ' Nombre de touches nécessaires
    TouchesEnvoi(1) = "^{ENTER}" ' Envoi du message avec Ctrl-Entrée
End Sub
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 05h36   #6
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
Bonjour

Comme il n'y a pas d'automation avec Thunderbird (enfin pas trouvée), vous pouvez contourner le problème en utilisant CDO.

Voici 2 discussions interessantes :
[FAQ] Envoi de mail en SMTP, CDO

Pierre
pier.antoine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h30.


 
 
 
 
Partenaires

Hébergement Web