OVH Cloud OVH Cloud

PROBLEME ENVOI ETAT ACCESS VIA OUTLOOK

14 réponses
Avatar
ALF
bonjour,
j'ai créé une macro (non vba) pour envoyer un etat access 2003 via outlook
et j'ai utilisé la commande "envoyer objet"...
j'ai toujours une fenetre outlook avec le message suivant qui apparait.. "un
pogramme essaye d'envoyer un message sur votre messagerie....voulez vous l
'envoyer?? Si je fais OUI cela marche...mais comment faire pour eviter l
apparition de ce message?? j'ai essaye avec Avertissement NON sur ACCESS et
c'est pareil...
Peut etre faut il parametrer outlook sur les autorisations ..mais comment???
MERCI de votre soutien.
--
ALF
--
ALF

4 réponses

1 2
Avatar
Oliv'
*JièL que je salut a écrit *:
Bonjoir(c) Oliv'

JIEL tu veux adapter quoi au juste ? envoyer le classeur ou le
document actif ?
Tout ! ;-)

le PC aussi ? ;-))



Ca risque de faire un peu gros en PJ, non ? ;-))))))


ah c'est pas un portable ? ;-))


Beaucoup de macroteurs se heurtent à se soucis de sécurité, je
voudrais bien mettre sur la FAQ des macros pour les différents
logiciels de la suite office permettant d'envoyer "je_ne_sé_koi"
sans tomber sur la sécurité d'outlook.


En général moi je passe par l'enregistrement du fichier (quel qu'il
soit word excel PDF ) dans un répertoire (et que l'on supprimera par
un kill à la fin)puis son ajout dans le mail en utilisant au choix :


Certes, mais des fois les destinataires doivent travailler avec ce
fichier.


je comprends pas, le destinataire recevra bien le fichier au format natif


Outlook Automation
(http://www.3stone.be/access/articles.php?lng=fr&pgˆ) mais en
faisant un .display au lieu de .send de ce fait là pas d'avertissement
car il faut cliquer sur envoyer
dans OUTLOOK et la personne peut ajouter des éléments au mail avant
son envoi.


Pas bête

Sinon il faut utiliser CDO
(http://www.3stone.be/access/articles.php?lng=fr&pg‰)


Vi...

Quant c'est un .DOC je remplace avant les CHAMPS par leur valeur,
With ActiveDocument.Fields
.Update
.unlink
End With


Là je comprend pas pourquoi ?


parce que si tu as un champ NomUtilisateur quand je te l'envoi il sera bien
a Oliv'
mais quand tu l'ouvriras il deviendra Jièl idem avec des dates.


On pourrait aussi supprimer les métadonnées !


Par macro ?


J'ai pas essayé mais j'ai téléchargé un jour l'outil de suppression de
métadonnés de µsoft et on peut l'utiliser en ligne de commande
donc à priori pas de pb

Clairement : je voudrais mettre en téléchargement les macros qui envoi
sans tomber sur la sécurité d'Outlook et ce pour tout les prog de la
suite Office. Le bonus serait qu'ils puisse avoir la possibilité de
rajouter un qqchose avant l'envoi si on passe par Outlook !?

Tu as ça en stock ?
J'ai des truc assez personnalisés je vais voir ce que je peux faire.

Si non, ça s'écrit facilement ?
vui

Merci d'avance
you're welcome


--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook : http://faq.outlook.free.fr/
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
OE6 : http://www.faqoe.com/
Sql : http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




Avatar
JièL
Bonjoir(c) Oliv'

Ca risque de faire un peu gros en PJ, non ? ;-))))))


ah c'est pas un portable ? ;-))


Si, mais c'est quand même un peu lourd, ça fait plusieurs giga octets
;-))))))

En général moi je passe par l'enregistrement du fichier (quel qu'il
soit word excel PDF ) dans un répertoire (et que l'on supprimera par
un kill à la fin)puis son ajout dans le mail en utilisant au choix :
Certes, mais des fois les destinataires doivent travailler avec ce

fichier.


je comprends pas, le destinataire recevra bien le fichier au format natif


J'ai lu en diagonale et compris que le destinataire recevrait un PDF...
m'escuse...

Quant c'est un .DOC je remplace avant les CHAMPS par leur valeur,
With ActiveDocument.Fields
.Update
.unlink
End With
Là je comprend pas pourquoi ?



parce que si tu as un champ NomUtilisateur quand je te l'envoi il sera bien
a Oliv'
mais quand tu l'ouvriras il deviendra Jièl idem avec des dates.


Ok ok

On pourrait aussi supprimer les métadonnées !
Par macro ?



J'ai pas essayé mais j'ai téléchargé un jour l'outil de suppression de
métadonnés de µsoft et on peut l'utiliser en ligne de commande
donc à priori pas de pb


Ok

J'ai des truc assez personnalisés je vais voir ce que je peux faire.


Merci, j'attends de tes nouvelles.

--
JièL / Jean-Louis GOUBERT
Là bas mieux qu'en face ;-) http://forums.offices.free.fr/
La FAQ Outlook est là : http://faq.outlook.free.fr/



Avatar
Oliv'
*JièL que je salut a écrit *:

Clairement : je voudrais mettre en téléchargement les macros qui envoi
sans tomber sur la sécurité d'Outlook et ce pour tout les prog de la
suite Office. Le bonus serait qu'ils puisse avoir la possibilité de
rajouter un qqchose avant l'envoi si on passe par Outlook !?


Ci dessous une tite macro à mettre dans n'importe quel programme
office(enfin presque).
il faut référencer "Microsoft CDO for Windows 2000 Library"
et il faut que la macro ne soit pas dans le fichier à envoyer.

Pour Access on ne peut pas envoyer la base active avec cette méthode car il
faut la fermer et donc plus de code, il doit y a voir une solution mais je
ne pratique pas le VBA Access.

Pour Publisher c'est presque la même chose je ne sais pas comment on lance
une macro se trouvant dans un autre document.
Mais on peut boucler sur tous les documents ouverts et choisir celui à
envoyer.

Ici l'exemple est donné avec des inputbox pour demander les infos d'envoi
c'est bien sûr mieux avec un Userform.
La macro à lancer est donc GoMail

Pour simplifier il faut que le document ait été enregistré au préalable.

Dans cet exemple pas de pb de sécurité mais le mail est envoyé directement .

A rectifier les retours à la ligne du au post.
-----------------------------------------------------------------------------------

Public Emetteur As String
Public Destinataire As String
Public Sujet As String
Public CorpsBrut As String
Public Fichier As String


Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional BodyHTML As String, _
Optional Cc As String, Optional Bcc As
String, Optional Attach1 As String)

Dim Cdo_Message As New CDO.Message
Set Cdo_Message.Configuration = GetSMTPServerConfig()

With Cdo_Message
.To = Receiver
.From = Sender
.Subject = Subject
.Cc = Cc
.Bcc = Bcc
'.DSNOptions = 2 ' Delivery Status Notification


'pour indiquer le Corps du Mail en brut.
.TextBody = BodyText

'Décommenter pour indiquer le Corps du Mail en HTML.
'.HTMLBody = BodyHTML

'Pour envoyer une page WEB en tant que corps du Mail.
'.CreateMHTMLBody
"http://groups.google.com/group/microsoft.public.fr.outlook", _
CDO.CdoMHTMLFlags.cdoSuppressNone, "", ""
'ou se trouvant sur son pc
'.CreateMHTMLBody "file:C:INFORMATexemplesévénements.htm"


If Attach1 <> "" Then
If Len(Dir(Attach1)) > 0 Then
.AddAttachment (Attach1)
Else: MsgBox Attach1 & vbCr & "Ce fichier sera ignoré", , "Fichier à
Attacher introuvable !"
End If
End If
'Cette commande envoi le Mail
.send
End With

Set Cdo_Message = Nothing

End Function

Function GetSMTPServerConfig() As Object

Dim Cdo_Config As New CDO.Configuration
Dim Cdo_Fields As Object
Set Cdo_Fields = Cdo_Config.Fields

With Cdo_Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
'.Item(cdoSMTPServer) = "smtp.easynet.fr"
'.Item(cdoSMTPServerPort) = 25
.Update
End With

Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing

End Function


Sub gomail()

MsgBox Application.Name

Select Case Application.Name
Case "Microsoft Excel"
EnvoiClasseur
Case "Microsoft Word"
EnvoiDoc
Case "Microsoft Access"
'Envoibase
Case "Microsoft PowerPoint"
EnvoiPpt
Case "Microsoft Publisher"
'EnvoiCompo
End Select
End Sub

Private Sub EnvoiClasseur()

Set FichierXls = Application.ActiveWorkbook
If FichierXls.Saved = True Then
Fichier = FichierXls.FullName
FichierXls.Close
Emetteur = InputBox("Emetteur ?", "Envoi par Mail", "Emetteur par défault")
Destinataire = InputBox("Destinataires (séparés par des ;)", "Envoi par
Mail")
Sujet = InputBox("Objet du mail ?", "Envoi par Mail", "Test CDO " &
Application.Name)
CorpsBrut = InputBox("Corps du message ?", "Envoi par Mail", "Lire le
fichier joint")
Call SendMailCDO(Emetteur, Destinataire, Sujet, CorpsBrut, , , , Fichier)
Workbooks.Open Fichier
MsgBox "Mail envoyé"

Else
MsgBox "Vous devez enregistrer votre fichier avant de pouvoir l'envoyer", ,
"Erreur"
End If
End Sub
Private Sub EnvoiDoc()

Set FichierDoc = Application.ActiveDocument
If FichierDoc.Saved = True Then
Fichier = FichierDoc.FullName
FichierDoc.Close
Emetteur = InputBox("Emetteur ?", "Envoi par Mail", "Emetteur par défault")
Destinataire = InputBox("Destinataires (séparés par des ;)", "Envoi par
Mail")
Sujet = InputBox("Objet du mail ?", "Envoi par Mail", "Test CDO " &
Application.Name)
CorpsBrut = InputBox("Corps du message ?", "Envoi par Mail", "Lire le
fichier joint")
Call SendMailCDO(Emetteur, Destinataire, Sujet, CorpsBrut, , , , Fichier)
Documents.Open Fichier
MsgBox "Mail envoyé"

Else
MsgBox "Vous devez enregistrer votre fichier avant de pouvoir l'envoyer", ,
"Erreur"
End If
End Sub

Private Sub EnvoiPpt()

Set FichierPpt = Application.ActivePresentation
If FichierPpt.Saved = True Then
Fichier = FichierPpt.FullName
FichierPpt.Close
Emetteur = InputBox("Emetteur ?", "Envoi par Mail", "Emetteur par défault")
Destinataire = InputBox("Destinataires (séparés par des ;)", "Envoi par
Mail")
Sujet = InputBox("Objet du mail ?", "Envoi par Mail", "Test CDO " &
Application.Name)
CorpsBrut = InputBox("Corps du message ?", "Envoi par Mail", "Lire le
fichier joint")
Call SendMailCDO(Emetteur, Destinataire, Sujet, CorpsBrut, , , , Fichier)
Presentations.Open Fichier
MsgBox "Mail envoyé"

Else
MsgBox "Vous devez enregistrer votre fichier avant de pouvoir l'envoyer", ,
"Erreur"
End If
End Sub

--
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
les sites références:
Excel :http://www.excelabo.net http://xcell05.free.fr/
http://dj.joss.free.fr/
http://frederic.sigonneau.free.fr/ http://www.excel-vba-francais.com/
Word : http://faqword.free.fr/
Outlook : http://faq.outlook.free.fr/
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
OE6 : http://www.faqoe.com/
Sql : http://sqlpro.developpez.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
JièL
Bonjoir(c) Oliv'

Merci Oliv', je garde et je mettrais sur la faq lors d'une prochaine
mise à jour.

--
JièL / Jean-Louis GOUBERT
Là bas mieux qu'en face ;-) http://forums.offices.free.fr/
La FAQ Outlook est là : http://faq.outlook.free.fr/

*JièL que je salut a écrit *:

Clairement : je voudrais mettre en téléchargement les macros qui envoi
sans tomber sur la sécurité d'Outlook et ce pour tout les prog de la
suite Office. Le bonus serait qu'ils puisse avoir la possibilité de
rajouter un qqchose avant l'envoi si on passe par Outlook !?


Ci dessous une tite macro à mettre dans n'importe quel programme
office(enfin presque).
il faut référencer "Microsoft CDO for Windows 2000 Library"
et il faut que la macro ne soit pas dans le fichier à envoyer.

Pour Access on ne peut pas envoyer la base active avec cette méthode car il
faut la fermer et donc plus de code, il doit y a voir une solution mais je
ne pratique pas le VBA Access.

Pour Publisher c'est presque la même chose je ne sais pas comment on lance
une macro se trouvant dans un autre document.
Mais on peut boucler sur tous les documents ouverts et choisir celui à
envoyer.

Ici l'exemple est donné avec des inputbox pour demander les infos d'envoi
c'est bien sûr mieux avec un Userform.
La macro à lancer est donc GoMail

Pour simplifier il faut que le document ait été enregistré au préalable.

Dans cet exemple pas de pb de sécurité mais le mail est envoyé directement .

A rectifier les retours à la ligne du au post.
-----------------------------------------------------------------------------------

Public Emetteur As String
Public Destinataire As String
Public Sujet As String
Public CorpsBrut As String
Public Fichier As String


Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional BodyHTML As String, _
Optional Cc As String, Optional Bcc As
String, Optional Attach1 As String)

Dim Cdo_Message As New CDO.Message
Set Cdo_Message.Configuration = GetSMTPServerConfig()

With Cdo_Message
.To = Receiver
.From = Sender
.Subject = Subject
.Cc = Cc
.Bcc = Bcc
'.DSNOptions = 2 ' Delivery Status Notification


'pour indiquer le Corps du Mail en brut.
.TextBody = BodyText

'Décommenter pour indiquer le Corps du Mail en HTML.
'.HTMLBody = BodyHTML

'Pour envoyer une page WEB en tant que corps du Mail.
'.CreateMHTMLBody
"http://groups.google.com/group/microsoft.public.fr.outlook", _
CDO.CdoMHTMLFlags.cdoSuppressNone, "", ""
'ou se trouvant sur son pc
'.CreateMHTMLBody "file:C:INFORMATexemplesévénements.htm"


If Attach1 <> "" Then
If Len(Dir(Attach1)) > 0 Then
.AddAttachment (Attach1)
Else: MsgBox Attach1 & vbCr & "Ce fichier sera ignoré", , "Fichier à
Attacher introuvable !"
End If
End If
'Cette commande envoi le Mail
.send
End With

Set Cdo_Message = Nothing

End Function

Function GetSMTPServerConfig() As Object

Dim Cdo_Config As New CDO.Configuration
Dim Cdo_Fields As Object
Set Cdo_Fields = Cdo_Config.Fields

With Cdo_Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
'.Item(cdoSMTPServer) = "smtp.easynet.fr"
'.Item(cdoSMTPServerPort) = 25
.Update
End With

Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing

End Function


Sub gomail()

MsgBox Application.Name

Select Case Application.Name
Case "Microsoft Excel"
EnvoiClasseur
Case "Microsoft Word"
EnvoiDoc
Case "Microsoft Access"
'Envoibase
Case "Microsoft PowerPoint"
EnvoiPpt
Case "Microsoft Publisher"
'EnvoiCompo
End Select
End Sub

Private Sub EnvoiClasseur()

Set FichierXls = Application.ActiveWorkbook
If FichierXls.Saved = True Then
Fichier = FichierXls.FullName
FichierXls.Close
Emetteur = InputBox("Emetteur ?", "Envoi par Mail", "Emetteur par défault")
Destinataire = InputBox("Destinataires (séparés par des ;)", "Envoi par
Mail")
Sujet = InputBox("Objet du mail ?", "Envoi par Mail", "Test CDO " &
Application.Name)
CorpsBrut = InputBox("Corps du message ?", "Envoi par Mail", "Lire le
fichier joint")
Call SendMailCDO(Emetteur, Destinataire, Sujet, CorpsBrut, , , , Fichier)
Workbooks.Open Fichier
MsgBox "Mail envoyé"

Else
MsgBox "Vous devez enregistrer votre fichier avant de pouvoir l'envoyer", ,
"Erreur"
End If
End Sub
Private Sub EnvoiDoc()

Set FichierDoc = Application.ActiveDocument
If FichierDoc.Saved = True Then
Fichier = FichierDoc.FullName
FichierDoc.Close
Emetteur = InputBox("Emetteur ?", "Envoi par Mail", "Emetteur par défault")
Destinataire = InputBox("Destinataires (séparés par des ;)", "Envoi par
Mail")
Sujet = InputBox("Objet du mail ?", "Envoi par Mail", "Test CDO " &
Application.Name)
CorpsBrut = InputBox("Corps du message ?", "Envoi par Mail", "Lire le
fichier joint")
Call SendMailCDO(Emetteur, Destinataire, Sujet, CorpsBrut, , , , Fichier)
Documents.Open Fichier
MsgBox "Mail envoyé"

Else
MsgBox "Vous devez enregistrer votre fichier avant de pouvoir l'envoyer", ,
"Erreur"
End If
End Sub

Private Sub EnvoiPpt()

Set FichierPpt = Application.ActivePresentation
If FichierPpt.Saved = True Then
Fichier = FichierPpt.FullName
FichierPpt.Close
Emetteur = InputBox("Emetteur ?", "Envoi par Mail", "Emetteur par défault")
Destinataire = InputBox("Destinataires (séparés par des ;)", "Envoi par
Mail")
Sujet = InputBox("Objet du mail ?", "Envoi par Mail", "Test CDO " &
Application.Name)
CorpsBrut = InputBox("Corps du message ?", "Envoi par Mail", "Lire le
fichier joint")
Call SendMailCDO(Emetteur, Destinataire, Sujet, CorpsBrut, , , , Fichier)
Presentations.Open Fichier
MsgBox "Mail envoyé"

Else
MsgBox "Vous devez enregistrer votre fichier avant de pouvoir l'envoyer", ,
"Erreur"
End If
End Sub




1 2