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

Access Discussion :

Envoie d'un courriel via une macro [AC-2007]


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 81
    Points : 51
    Points
    51
    Par défaut Envoie d'un courriel via une macro
    Bonjour,

    J'ai fait une macro pour envoyer automatiquement un mail avec fichier joint via l'action "EnvoyerObjet".
    Le problème est qu'une fenêtre outlook s'ouvre et attend que j'Appuie sur "Envoyer" pour que le mail parte. Donc je dois intervenir quand le but de la macro est que le tout se fasse automatique.

    Comme deuxième solution j'ai codé un module d'envoi automatique mais j'aimerais appeler ce module par une macro. La aussi je me bute car je n'ai pas trouvé l'action approprié dans ma macro.

    merci de bien vouloir m'aider

    j'utilise access 2007

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Dans Outlook 2007, va dans Outils > Centre de gestion de la confidentialité ...
    Dans le bandeau gauche, cliques sur Accès par programme.
    Je pense que c'est là que l'on peut désactiver la boîte de message d'avertissement.

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    Bonsoir,

    J'ai fait ce que vous m'avez dit mais je n'ai pas vraiment trouvé ce qu'il faut décocher pour "désactiver la boîte de message d'avertissement".

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    Pourrions nous travailler mon option #2 soit d'appeler mon module via la macro ?

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Pour exécuter du code VBA depuis une macro il faut utiliser l'action ExécuterCode.

    Le code à exécuter doit être une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function NomDeLaFonction(Arg1, Arg2, ...)
     
    ...
     
    End Function
    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    Voici comme sugéré l'appel de ma fonction via ma macro mais j'obtiens un message d'erreur. Je me permets de poster mon code pour que vous puissiez m'aider à résoudre mon problème.
    Ma fonction de nomme : cmdMail


    Voici le conternu de mon module nommé Mail.

    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
    73
    74
     
    Option Compare Database
     
     
    Function cmdMAIL()
    Dim blret As Boolean
    Dim astrFichiers(1 To 3) As String
    Dim rst As DAO.Recordset
    Dim db As DAO.Database
     
    Set db = CurrentDb()
    Set rst = db.OpenRecordset("SELECT  * from [TbEcart]")
     
    If Not rst.EOF Then
        'strDest = "samueltaschereau@cyber3d.ca;clermonthudon@cyber3d.ca;davenadeau@cyber3d.ca;linebergeron@cyber3d.ca"
       strDest = "linebergeron@cyber3d.ca"
     
        strObj = "Cartouches a ré-étiquetter"
        strMsg = "SVP modifier les étiquettes si applicable"
     
        astrFichiers(1) = "X:\Programme Access\LISTE DE PRIX\Prix Synnex\RapEcart.pdf"
        SendOLMail strDest, strObj, strMsg, False, astrFichiers
        DoCmd.OpenReport "RapEcart", acViewPreview, , , acHidden
        DoCmd.OutputTo acOutputReport, "RapEcart", "PDF", "X:\Programme Access\LISTE DE PRIX\Prix Synnex\RapEcart.pdf"
     
        MsgBox ("Liste de Changements de Prix Envoyée")
    Else
        MsgBox ("Aucun changement de prix effectué dans le rapport")
    End If
    End Function
     
     
    Public Sub SendOLMail( _
      ByVal strDest As String, _
      ByVal strObj As String, _
      ByVal strMsg As String, _
      ByVal blnEdit As Boolean, _
      Optional ByVal avarFichiers As Variant)
     
     
    Dim ol As Outlook.Application
    Dim mi As Outlook.MailItem
    Dim varPJ As Variant
     
     
    On Error GoTo OLMailErr
    Set ol = New Outlook.Application
     
    Set mi = ol.CreateItem(olMailItem)
     
    With mi
      .To = strDest
      .Subject = strObj
      .Body = strMsg
     
     
        .Attachments.Add "X:\Programme Access\LISTE DE PRIX\Prix Synnex\RapEcart.pdf"
     
      If blnEdit Then
        .Display
      Else
        .Send
      End If
    End With
     
    Set mi = Nothing
    Set ol = Nothing
    Exit Sub
     
    OLMailErr:
        MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
        Exit Sub
     
    End Sub
    Dans ma macro a l'instruction 'ExécuterCode' j'ai inscris : cmdMAil().
    Il me semble que c'est OK ? mais j'obtiens l'erreur:

    "L'expression entré comporte un nom de fonction qu'access de peut pas trouver"...
    Mais où est donc mon problème ???


    Encore milles mercis de m'aider

  7. #7
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Ce que tu as fait est correct.

    Est-ce que le code est bien dans un module de code ?

    Dans la macro, lorsque tu es sur la ligne de l'action ExécuterCode,
    cliques dans la zone de saisie du nom de la fonction.
    Ensuite cliques sur le petit bouton à droite [...]
    Le générateur d'expression s'ouvre.
    Double cliques sur Fonctions ([+] Fonctions -> [-] Fonctions)
    Tu dois voir "Fonctions intégrées" et "NomBDD"
    Cliques sur "NomBDD"
    La liste immédiatement à droite contient les modules de code.
    Cliques sur le module de code contenant la fonction cmdMAIL
    Dans la liste tout à droite est-ce que tu vois cmdMAIL ?

    A+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2005
    Messages : 81
    Points : 51
    Points
    51
    Par défaut
    Et bien voilà le problème.

    Le module n'était pas dans un module de code.
    Je viens de corriger et tout de suite cela a fonctionner.

    Je te remercier infiniment.

    Cordialement

    Line (une tite fille du Québec - Canada)

  9. #9
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Content que ça marche.

    J'avais oublié de te le dire hier :
    Tu devrais éditer ton message (#6) un peu plus haut,
    et remplacer les adresses emails (qui ont l'air réelles) par des adresses fictives.
    Ce sont des données confidentielles

    A+

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

Discussions similaires

  1. [AC-2003] Envoi de plusieurs objets via une seule macro
    Par Skoat dans le forum Access
    Réponses: 9
    Dernier message: 03/11/2009, 16h42
  2. Réponses: 5
    Dernier message: 24/07/2009, 22h19
  3. [ODBC]connexion a sybase via une macro excel
    Par ricoree78 dans le forum Sybase
    Réponses: 3
    Dernier message: 06/10/2006, 16h52
  4. [VBA-E]Filtre via une macro sur Excel
    Par jamal.b dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2006, 15h35

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