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

IHM Discussion :

Envoi d'Email en nombre


Sujet :

IHM

  1. #21
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Mea Culpa, la propriété .Visible ne s'applique pas à Outlook.

    Je ne trouve pas comment activer Outlook.

  2. #22
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Salut Heureux Oli,

    Il est possible de partir sur quelques chose comme ça :

    Un module de classe clsOutlook :

    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
    Option Compare Database
    Option Explicit
     
    Private WithEvents oMail As Outlook.MailItem
    Private oApp As Outlook.Application
    Private bolFin As Boolean
    Sub init()
        Set oApp = New Outlook.Application
        Set oMail = oApp.CreateItem(olMailItem)
        oMail.Display
    End Sub
     
    Private Sub oMail_Close(Cancel As Boolean)
        bolFin = True
        Set oApp = Nothing
        Set oMail = Nothing
    End Sub
     
    Property Get Actif() As Boolean
        Actif = Not bolFin
    End Property
    Et l'appel suivant qui permet de mettre le code en suspens tant que l'on travail sur le mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    Dim oOutlookProcess As New clsOutlook
    oOutlookProcess.init
    While oOutlookProcess.Actif
        DoEvents
    Wend
    End Sub
    Bien entendu à améliorer pour pré-remplir le mail et gérer les éventuelles erreurs.

  3. #23
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 52
    Points : 31
    Points
    31
    Par défaut
    Bonjour Tofalu,

    Merci de ta réponse je regarde ca tout de suite!

    PS: J'viens de tester ton code, pour essayer de voir ce que je pouvais faire, le WithEvents me donne un message d'erreur: valide seulement dans un module objet.

  4. #24
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 52
    Points : 31
    Points
    31
    Par défaut
    Ok, en fait, tu a créé des fonctions avec tout les différents sub: init etc...
    Et il faut y faire appel dans une sorte de "main program" j'ai compris enfin .

    Après test de chacun des blocs, je vois comment ca marche. Juste comment fait-on appel à ces fonctions?

    J'ai réussi à gérer le remplissage du mail dans init!
    Ca m'arrète sur la page d'envoi du mail (déjà quasiment rempli du coup). Donc limite jpeux m'arréter la ca me suffira non? L'utilisateur aura qu'à appuyer sur envoyer et fermer lui même Outlook.

    Du coup, pas besoin de oMail_close, Actif et Test?

    Maintenant que le plus dur est fait je me demandais comment limiter cette envoi aux clients qui sont triés par une requète: par exemple, jai 5000 clients, mais 1000 réponde au critères "+de 500 euro d'achat", je créé donc une requète qui les met en évidence ainsi qu'un formulaire pour afficher cette requète, et je veux un bouton qui quand j'appuie dessus lance le module que je viens de faire et met dans le champ CCI (ou BBC) uniquement les clients du formulaire!

    Si j'ai bien compris, Set oDB = CurrentDb prend la base de donnée en cours, il faudrait donc réduire cela à la requète en cours! (ou limite trouver comment faire un Set oDB = "nom de la requête" et je mettrais un bouton avec un module spécifique pour chacun de mes formulaires).


    Merci encore!

  5. #25
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 52
    Points : 31
    Points
    31
    Par défaut
    Bonjour, je met résolu et passe sur la partie VBA du forum

    J'ajoute le code auquel je suis arrivé:

    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
     
    Option Compare Database
    Option Explicit
     
    'Ajouter les références suivantes :
    'Microsoft Outlook
    'Microsoft DAO
    Private oMail As Outlook.MailItem
    Private oApp As Outlook.Application
    Private bolFin As Boolean
    Sub RealisationEnvoi()
    Set oApp = New Outlook.Application
    Dim oDB As DAO.Database
    Dim strContenu As String
    Dim oRst0 As DAO.Recordset
    Dim oRst1 As DAO.Recordset
    Dim strTo As String
    Dim sqlMail As String
    'Instancie Outlook
    Set oDB = CurrentDb
    Set oApp = CreateObject("Outlook.Application")
    'Crée un nouveau message
    sqlMail = "SELECT  * FROM TableMessage;"
    Set oRst0 = oDB.OpenRecordset(sqlMail)
    oRst0.MoveLast
    Set oMail = oApp.CreateItem(olMailItem)
    oMail.Body = oRst0.Fields("txtCorps")
    oMail.Subject = oRst0.Fields("strObjet") & " du " & oRst0.Fields("dtCrea")
    'Ouvre un recordset sur les clients
    Set oRst1 = oDB.OpenRecordset("SELECT * FROM InfosClients")
    'Boucle sur chaque client et les ajoute au champ BCC du mail
    While Not oRst1.EOF
        strTo = strTo & oRst1.Fields("E-mail") & "; "
        oRst1.MoveNext
    Wend
    'Supprime la dernière virgule
    oMail.Bcc = Left(strTo, Len(strTo) - 2)
    oMail.Display
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/06/2010, 21h44
  2. [JavaMail] Exception lors de l'envoi d'un email en nombre
    Par yousfi.z dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 19/12/2006, 13h51
  3. Envoie de EMail avec un formulaire
    Par LibrairieSI dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/02/2005, 14h31
  4. envoie d'email a partir d'asp
    Par sheira dans le forum ASP
    Réponses: 5
    Dernier message: 07/12/2004, 16h14
  5. envoie d'email
    Par ZZ dans le forum ASP
    Réponses: 8
    Dernier message: 16/12/2003, 10h53

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