il faut parametrer la securité d'Outlook pour qu'il accepte excel,
isabelle
Franck P a écrit :
> Il était déjà en ".send"... J'ai donc retiré la ligne ".visible = False"
> Et le problème est que maintenant, j'ai une alerte qui apparaît : "Un
> programme tente d'envoyer automatiquement des courriers en votre nom.
> L'autorisez-vous à poursuivre ?"
> :'(
> Comment éliminer cette alerte ?
>
> Encore merci,
>
> Franck
>
> "isabelle" a écrit dans le message de news:
>
>
>> peut tu réessayer sans le .visible = false
>> normallement si on met .send au lieu de .display il ne devrait pas y avoir
>> probleme,
>>
>> isabelle
>>
>> Franck P a écrit :
>>
>>> Rebonjour Isabelle,
>>>
>>> Merci beaucoup pour ton nouveau message.
>>> J'ai malheureusement une nouvelle erreur au niveau du ".Visible = False"
>>> : "Erreur d'exécution '438' : Propriété ou méthode non gérée par cet
>>> objet"...
>>>
>>> As-tu une idée ?
>>>
>>> Merci encore et bon appétit,
>>>
>>> Franck
>>>
>>> "isabelle" a écrit dans le message de news:
>>>
>>>
>>>
>>>> bonjoour Franck,
>>>>
>>>> oui, et il faudrais que tu configure outlook pour accepter les envois à
>>>> partir d'excel
>>>>
>>>> Sub envoieMailOutlook()
>>>> Application.DisplayAlerts = False
>>>> Dim ol As New Outlook.Application
>>>> Dim olmail As MailItem
>>>>
>>>> Set ol = New Outlook.Application
>>>> Set olmail = ol.CreateItem(olMailItem)
>>>> With olmail
>>>> .Visible = False
>>>> .To = Range("a1").Value
>>>> .Subject = Range("b1").Value
>>>> For Each c In Selection
>>>> x = x & vbNewLine & c
>>>> Next
>>>> .Body = x
>>>> . Send End With
>>>> Application.DisplayAlerts = True
>>>> End Sub
>>>>
>>>> isabelle
>>>>
>>>> Franck P a écrit :
>>>>
>>>>
>>>>> Bonjour Isabelle,
>>>>>
>>>>> Merci beaucoup pour ta réponse.
>>>>> Malheureusement, elle ne marche pas... A moins que je n'ai pas compris
>>>>> ta phrase :
>>>>> "tu mettre .visible = false" => faut-il insérer cela quelque part ?
>>>>>
>>>>> J'ai recopié ton code mais cela entraîne la présence d'une alerte
>>>>> Outlook concernant "Un programme tente d'envoyer automatiquement des
>>>>> courriers en votre nom [...]" ; ce qui ne me satisfait pas.
>>>>>
>>>>> Aujourd'hui j'utilise le code suivant pour ne pas avoir cette alerte
>>>>> mais Outlook apparaît à l'écran, chose que je cherche à éviter...
>>>>> ****************************************
>>>>> ' ------------------------------------------------------------------
>>>>> Option Explicit
>>>>> ' ------------------------------------------------------------------
>>>>> 'Déclaration des tableaux qui recevront les touches à utiliser suivant
>>>>> ' le logiciel de messagerie par défaut du système.
>>>>> 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 Test()
>>>>> ' DECLARATION DES VARIABLES
>>>>> Dim Adresse As String
>>>>> Dim Objet As String
>>>>> Dim Corps As String
>>>>> Dim PJ As String
>>>>> Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
>>>>> Dim i As Integer ' un compteur
>>>>> Dim Client As Integer
>>>>>
>>>>> Adresse = ""
>>>>> Objet = "Coucou"
>>>>> Corps = "Test"
>>>>>
>>>>> ' Remarque : l'argument PJ (pièce jointe) est optionnel. S'il est
>>>>> fourni,
>>>>> ' c'est le chemin complet du fichier à joindre qui doit être fourni
>>>>> ' pour joindre plusieurs pièces, il faudrait que PJ soit
>>>>> ' un tableau et qu'il soit traité + bas par une boucle...
>>>>> ' composés avec les arguments fournis
>>>>> ' la syntaxe de base du mailto est la suivante :
>>>>> ' mailto:?Subject=sujet du message&Body=corps du message
>>>>> ' je ne prends pas en compte les copies, copies cachées
>>>>> ' ou autres confirmation de lecture, je suppose
>>>>> ' qu'il faudrait utiliser d'autre arguments de mailto...
>>>>>
>>>>> ' Le ? introduit les arguments
>>>>> HyperLien = "mailto:" & Adresse & "?"
>>>>> HyperLien = HyperLien & "Subject=" & Objet
>>>>> HyperLien = HyperLien & "&Body=" & Corps
>>>>> ' le & sépare les arguments
>>>>>
>>>>> Application.DisplayAlerts = False
>>>>> ' Activation du lien
>>>>> ActiveWorkbook.FollowHyperlink HyperLien
>>>>>
>>>>> Attendre 5 ' Appel d'une procédure qui temporise
>>>>> ' c'est à dire que la procédure courante
>>>>> ' (ici EnvoiEmail) est suspendue pendant 5s
>>>>> ' cela permet d'Attendre que le client
>>>>> ' de messagerie soit lancé et prêt
>>>>> ' avant d'envoyer les touches
>>>>> ' sinon ce serait le programme appelant
>>>>> ' (ici Excel) qui recevrait les touches
>>>>>
>>>>> Office2003OutLook
>>>>>
>>>>> ' 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
>>>>> ' dans TouchesPJ(0) on a stocké le nombre de touches
>>>>> ' à envoyer au programme pour joindre une pièce
>>>>> For i = 1 To TouchesPJ(0) ' pour chaque touche à envoyer
>>>>> SendKeys TouchesPJ(i), True ' Envoi de la touches
>>>>> 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) ' idem pour les touches d'envoi
>>>>> ' du message
>>>>> SendKeys TouchesEnvoi(i), True
>>>>> Next i
>>>>> ' Fin de la procédure principale
>>>>>
>>>>> Application.DisplayAlerts = True
>>>>> MsgBox ("C'est fini !! Merci beaucoup.")
>>>>>
>>>>> End Sub
>>>>>
>>>>> ' -----------------------------------------------------------------
>>>>> Private Sub Attendre(Secondes As Integer)
>>>>> ' 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
>>>>>
>>>>> Private Sub Office2003OutLook()
>>>>> 'Initialisation des tableaux de touches pour Office Outlook
>>>>> ' 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) = 2 ' Nombre de touches nécessaires
>>>>> TouchesEnvoi(1) = "+{TAB}" 'Revenir sur l'en-tête de l'email
>>>>> TouchesEnvoi(2) = "%v" ' Envoi du message avec Alt-v
>>>>> End Sub
>>>>> ****************************************
>>>>> Merci encore pour ton aide,
>>>>>
>>>>> Franck
>>>>> ======================================================== > >>>>> "isabelle" a écrit dans le message de news:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> bonjoour Franck,
>>>>>>
>>>>>> si tu utilise une méthode comme celle-ci :
>>>>>>
>>>>>> Sub envoieMailOutlook()
>>>>>> Application.DisplayAlerts = False
>>>>>> Dim ol As New Outlook.Application
>>>>>> Dim olmail As MailItem
>>>>>>
>>>>>> Set ol = New Outlook.Application
>>>>>> Set olmail = ol.CreateItem(olMailItem)
>>>>>> With olmail
>>>>>> .To = Range("a1").Value
>>>>>> .Subject = Range("b1").Value
>>>>>> For Each c In Selection
>>>>>> x = x & vbNewLine & c
>>>>>> Next
>>>>>> .Body = x
>>>>>> .Display '.ou Send
>>>>>> End With
>>>>>> Application.DisplayAlerts = True
>>>>>> End Sub
>>>>>>
>>>>>> tu mettre .visible = false
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> Franck P a écrit :
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Bonjour à tous,
>>>>>>>
>>>>>>> Je cherche à réaliser une application en VB Excel. Cette dernière
>>>>>>> envoie automatiquement un email par le biais d'Outlook mais je
>>>>>>> voudrais que toute la partie sous Outlook (réalisation du mail +
>>>>>>> envoi à l'aide de SendKeys) soit invisible pour l'utilisateur.
>>>>>>> Le problème est que Application.ScreenUpdation = False ne fonctionne
>>>>>>> que pour Excel mais pas pour la partie sous Outlook... Comment faire
>>>>>>> ?
>>>>>>>
>>>>>>> Merci d'avance à tous pour votre aide !
>>>>>>>
>>>>>>> Franck
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>
>>>
>
>
>
il faut parametrer la securité d'Outlook pour qu'il accepte excel,
isabelle
Franck P a écrit :
> Il était déjà en ".send"... J'ai donc retiré la ligne ".visible = False"
> Et le problème est que maintenant, j'ai une alerte qui apparaît : "Un
> programme tente d'envoyer automatiquement des courriers en votre nom.
> L'autorisez-vous à poursuivre ?"
> :'(
> Comment éliminer cette alerte ?
>
> Encore merci,
>
> Franck
>
> "isabelle" <i@v> a écrit dans le message de news:
> Otet6bfsJHA.5516@TK2MSFTNGP02.phx.gbl...
>
>> peut tu réessayer sans le .visible = false
>> normallement si on met .send au lieu de .display il ne devrait pas y avoir
>> probleme,
>>
>> isabelle
>>
>> Franck P a écrit :
>>
>>> Rebonjour Isabelle,
>>>
>>> Merci beaucoup pour ton nouveau message.
>>> J'ai malheureusement une nouvelle erreur au niveau du ".Visible = False"
>>> : "Erreur d'exécution '438' : Propriété ou méthode non gérée par cet
>>> objet"...
>>>
>>> As-tu une idée ?
>>>
>>> Merci encore et bon appétit,
>>>
>>> Franck
>>>
>>> "isabelle" <i@v> a écrit dans le message de news:
>>> uKv3y0esJHA.1240@TK2MSFTNGP02.phx.gbl...
>>>
>>>
>>>> bonjoour Franck,
>>>>
>>>> oui, et il faudrais que tu configure outlook pour accepter les envois à
>>>> partir d'excel
>>>>
>>>> Sub envoieMailOutlook()
>>>> Application.DisplayAlerts = False
>>>> Dim ol As New Outlook.Application
>>>> Dim olmail As MailItem
>>>>
>>>> Set ol = New Outlook.Application
>>>> Set olmail = ol.CreateItem(olMailItem)
>>>> With olmail
>>>> .Visible = False
>>>> .To = Range("a1").Value
>>>> .Subject = Range("b1").Value
>>>> For Each c In Selection
>>>> x = x & vbNewLine & c
>>>> Next
>>>> .Body = x
>>>> . Send End With
>>>> Application.DisplayAlerts = True
>>>> End Sub
>>>>
>>>> isabelle
>>>>
>>>> Franck P a écrit :
>>>>
>>>>
>>>>> Bonjour Isabelle,
>>>>>
>>>>> Merci beaucoup pour ta réponse.
>>>>> Malheureusement, elle ne marche pas... A moins que je n'ai pas compris
>>>>> ta phrase :
>>>>> "tu mettre .visible = false" => faut-il insérer cela quelque part ?
>>>>>
>>>>> J'ai recopié ton code mais cela entraîne la présence d'une alerte
>>>>> Outlook concernant "Un programme tente d'envoyer automatiquement des
>>>>> courriers en votre nom [...]" ; ce qui ne me satisfait pas.
>>>>>
>>>>> Aujourd'hui j'utilise le code suivant pour ne pas avoir cette alerte
>>>>> mais Outlook apparaît à l'écran, chose que je cherche à éviter...
>>>>> ****************************************
>>>>> ' ------------------------------------------------------------------
>>>>> Option Explicit
>>>>> ' ------------------------------------------------------------------
>>>>> 'Déclaration des tableaux qui recevront les touches à utiliser suivant
>>>>> ' le logiciel de messagerie par défaut du système.
>>>>> 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 Test()
>>>>> ' DECLARATION DES VARIABLES
>>>>> Dim Adresse As String
>>>>> Dim Objet As String
>>>>> Dim Corps As String
>>>>> Dim PJ As String
>>>>> Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
>>>>> Dim i As Integer ' un compteur
>>>>> Dim Client As Integer
>>>>>
>>>>> Adresse = "franck.peixoto@arval.fr"
>>>>> Objet = "Coucou"
>>>>> Corps = "Test"
>>>>>
>>>>> ' Remarque : l'argument PJ (pièce jointe) est optionnel. S'il est
>>>>> fourni,
>>>>> ' c'est le chemin complet du fichier à joindre qui doit être fourni
>>>>> ' pour joindre plusieurs pièces, il faudrait que PJ soit
>>>>> ' un tableau et qu'il soit traité + bas par une boucle...
>>>>> ' composés avec les arguments fournis
>>>>> ' la syntaxe de base du mailto est la suivante :
>>>>> ' mailto:dest@domaine?Subject=sujet du message&Body=corps du message
>>>>> ' je ne prends pas en compte les copies, copies cachées
>>>>> ' ou autres confirmation de lecture, je suppose
>>>>> ' qu'il faudrait utiliser d'autre arguments de mailto...
>>>>>
>>>>> ' Le ? introduit les arguments
>>>>> HyperLien = "mailto:" & Adresse & "?"
>>>>> HyperLien = HyperLien & "Subject=" & Objet
>>>>> HyperLien = HyperLien & "&Body=" & Corps
>>>>> ' le & sépare les arguments
>>>>>
>>>>> Application.DisplayAlerts = False
>>>>> ' Activation du lien
>>>>> ActiveWorkbook.FollowHyperlink HyperLien
>>>>>
>>>>> Attendre 5 ' Appel d'une procédure qui temporise
>>>>> ' c'est à dire que la procédure courante
>>>>> ' (ici EnvoiEmail) est suspendue pendant 5s
>>>>> ' cela permet d'Attendre que le client
>>>>> ' de messagerie soit lancé et prêt
>>>>> ' avant d'envoyer les touches
>>>>> ' sinon ce serait le programme appelant
>>>>> ' (ici Excel) qui recevrait les touches
>>>>>
>>>>> Office2003OutLook
>>>>>
>>>>> ' 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
>>>>> ' dans TouchesPJ(0) on a stocké le nombre de touches
>>>>> ' à envoyer au programme pour joindre une pièce
>>>>> For i = 1 To TouchesPJ(0) ' pour chaque touche à envoyer
>>>>> SendKeys TouchesPJ(i), True ' Envoi de la touches
>>>>> 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) ' idem pour les touches d'envoi
>>>>> ' du message
>>>>> SendKeys TouchesEnvoi(i), True
>>>>> Next i
>>>>> ' Fin de la procédure principale
>>>>>
>>>>> Application.DisplayAlerts = True
>>>>> MsgBox ("C'est fini !! Merci beaucoup.")
>>>>>
>>>>> End Sub
>>>>>
>>>>> ' -----------------------------------------------------------------
>>>>> Private Sub Attendre(Secondes As Integer)
>>>>> ' 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
>>>>>
>>>>> Private Sub Office2003OutLook()
>>>>> 'Initialisation des tableaux de touches pour Office Outlook
>>>>> ' 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) = 2 ' Nombre de touches nécessaires
>>>>> TouchesEnvoi(1) = "+{TAB}" 'Revenir sur l'en-tête de l'email
>>>>> TouchesEnvoi(2) = "%v" ' Envoi du message avec Alt-v
>>>>> End Sub
>>>>> ****************************************
>>>>> Merci encore pour ton aide,
>>>>>
>>>>> Franck
>>>>> ======================================================== > >>>>> "isabelle" <i@v> a écrit dans le message de news:
>>>>> eKRSIEXsJHA.4140@TK2MSFTNGP02.phx.gbl...
>>>>>
>>>>>
>>>>>
>>>>>> bonjoour Franck,
>>>>>>
>>>>>> si tu utilise une méthode comme celle-ci :
>>>>>>
>>>>>> Sub envoieMailOutlook()
>>>>>> Application.DisplayAlerts = False
>>>>>> Dim ol As New Outlook.Application
>>>>>> Dim olmail As MailItem
>>>>>>
>>>>>> Set ol = New Outlook.Application
>>>>>> Set olmail = ol.CreateItem(olMailItem)
>>>>>> With olmail
>>>>>> .To = Range("a1").Value
>>>>>> .Subject = Range("b1").Value
>>>>>> For Each c In Selection
>>>>>> x = x & vbNewLine & c
>>>>>> Next
>>>>>> .Body = x
>>>>>> .Display '.ou Send
>>>>>> End With
>>>>>> Application.DisplayAlerts = True
>>>>>> End Sub
>>>>>>
>>>>>> tu mettre .visible = false
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> Franck P a écrit :
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Bonjour à tous,
>>>>>>>
>>>>>>> Je cherche à réaliser une application en VB Excel. Cette dernière
>>>>>>> envoie automatiquement un email par le biais d'Outlook mais je
>>>>>>> voudrais que toute la partie sous Outlook (réalisation du mail +
>>>>>>> envoi à l'aide de SendKeys) soit invisible pour l'utilisateur.
>>>>>>> Le problème est que Application.ScreenUpdation = False ne fonctionne
>>>>>>> que pour Excel mais pas pour la partie sous Outlook... Comment faire
>>>>>>> ?
>>>>>>>
>>>>>>> Merci d'avance à tous pour votre aide !
>>>>>>>
>>>>>>> Franck
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>
>>>
>
>
>
il faut parametrer la securité d'Outlook pour qu'il accepte excel,
isabelle
Franck P a écrit :
> Il était déjà en ".send"... J'ai donc retiré la ligne ".visible = False"
> Et le problème est que maintenant, j'ai une alerte qui apparaît : "Un
> programme tente d'envoyer automatiquement des courriers en votre nom.
> L'autorisez-vous à poursuivre ?"
> :'(
> Comment éliminer cette alerte ?
>
> Encore merci,
>
> Franck
>
> "isabelle" a écrit dans le message de news:
>
>
>> peut tu réessayer sans le .visible = false
>> normallement si on met .send au lieu de .display il ne devrait pas y avoir
>> probleme,
>>
>> isabelle
>>
>> Franck P a écrit :
>>
>>> Rebonjour Isabelle,
>>>
>>> Merci beaucoup pour ton nouveau message.
>>> J'ai malheureusement une nouvelle erreur au niveau du ".Visible = False"
>>> : "Erreur d'exécution '438' : Propriété ou méthode non gérée par cet
>>> objet"...
>>>
>>> As-tu une idée ?
>>>
>>> Merci encore et bon appétit,
>>>
>>> Franck
>>>
>>> "isabelle" a écrit dans le message de news:
>>>
>>>
>>>
>>>> bonjoour Franck,
>>>>
>>>> oui, et il faudrais que tu configure outlook pour accepter les envois à
>>>> partir d'excel
>>>>
>>>> Sub envoieMailOutlook()
>>>> Application.DisplayAlerts = False
>>>> Dim ol As New Outlook.Application
>>>> Dim olmail As MailItem
>>>>
>>>> Set ol = New Outlook.Application
>>>> Set olmail = ol.CreateItem(olMailItem)
>>>> With olmail
>>>> .Visible = False
>>>> .To = Range("a1").Value
>>>> .Subject = Range("b1").Value
>>>> For Each c In Selection
>>>> x = x & vbNewLine & c
>>>> Next
>>>> .Body = x
>>>> . Send End With
>>>> Application.DisplayAlerts = True
>>>> End Sub
>>>>
>>>> isabelle
>>>>
>>>> Franck P a écrit :
>>>>
>>>>
>>>>> Bonjour Isabelle,
>>>>>
>>>>> Merci beaucoup pour ta réponse.
>>>>> Malheureusement, elle ne marche pas... A moins que je n'ai pas compris
>>>>> ta phrase :
>>>>> "tu mettre .visible = false" => faut-il insérer cela quelque part ?
>>>>>
>>>>> J'ai recopié ton code mais cela entraîne la présence d'une alerte
>>>>> Outlook concernant "Un programme tente d'envoyer automatiquement des
>>>>> courriers en votre nom [...]" ; ce qui ne me satisfait pas.
>>>>>
>>>>> Aujourd'hui j'utilise le code suivant pour ne pas avoir cette alerte
>>>>> mais Outlook apparaît à l'écran, chose que je cherche à éviter...
>>>>> ****************************************
>>>>> ' ------------------------------------------------------------------
>>>>> Option Explicit
>>>>> ' ------------------------------------------------------------------
>>>>> 'Déclaration des tableaux qui recevront les touches à utiliser suivant
>>>>> ' le logiciel de messagerie par défaut du système.
>>>>> 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 Test()
>>>>> ' DECLARATION DES VARIABLES
>>>>> Dim Adresse As String
>>>>> Dim Objet As String
>>>>> Dim Corps As String
>>>>> Dim PJ As String
>>>>> Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
>>>>> Dim i As Integer ' un compteur
>>>>> Dim Client As Integer
>>>>>
>>>>> Adresse = ""
>>>>> Objet = "Coucou"
>>>>> Corps = "Test"
>>>>>
>>>>> ' Remarque : l'argument PJ (pièce jointe) est optionnel. S'il est
>>>>> fourni,
>>>>> ' c'est le chemin complet du fichier à joindre qui doit être fourni
>>>>> ' pour joindre plusieurs pièces, il faudrait que PJ soit
>>>>> ' un tableau et qu'il soit traité + bas par une boucle...
>>>>> ' composés avec les arguments fournis
>>>>> ' la syntaxe de base du mailto est la suivante :
>>>>> ' mailto:?Subject=sujet du message&Body=corps du message
>>>>> ' je ne prends pas en compte les copies, copies cachées
>>>>> ' ou autres confirmation de lecture, je suppose
>>>>> ' qu'il faudrait utiliser d'autre arguments de mailto...
>>>>>
>>>>> ' Le ? introduit les arguments
>>>>> HyperLien = "mailto:" & Adresse & "?"
>>>>> HyperLien = HyperLien & "Subject=" & Objet
>>>>> HyperLien = HyperLien & "&Body=" & Corps
>>>>> ' le & sépare les arguments
>>>>>
>>>>> Application.DisplayAlerts = False
>>>>> ' Activation du lien
>>>>> ActiveWorkbook.FollowHyperlink HyperLien
>>>>>
>>>>> Attendre 5 ' Appel d'une procédure qui temporise
>>>>> ' c'est à dire que la procédure courante
>>>>> ' (ici EnvoiEmail) est suspendue pendant 5s
>>>>> ' cela permet d'Attendre que le client
>>>>> ' de messagerie soit lancé et prêt
>>>>> ' avant d'envoyer les touches
>>>>> ' sinon ce serait le programme appelant
>>>>> ' (ici Excel) qui recevrait les touches
>>>>>
>>>>> Office2003OutLook
>>>>>
>>>>> ' 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
>>>>> ' dans TouchesPJ(0) on a stocké le nombre de touches
>>>>> ' à envoyer au programme pour joindre une pièce
>>>>> For i = 1 To TouchesPJ(0) ' pour chaque touche à envoyer
>>>>> SendKeys TouchesPJ(i), True ' Envoi de la touches
>>>>> 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) ' idem pour les touches d'envoi
>>>>> ' du message
>>>>> SendKeys TouchesEnvoi(i), True
>>>>> Next i
>>>>> ' Fin de la procédure principale
>>>>>
>>>>> Application.DisplayAlerts = True
>>>>> MsgBox ("C'est fini !! Merci beaucoup.")
>>>>>
>>>>> End Sub
>>>>>
>>>>> ' -----------------------------------------------------------------
>>>>> Private Sub Attendre(Secondes As Integer)
>>>>> ' 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
>>>>>
>>>>> Private Sub Office2003OutLook()
>>>>> 'Initialisation des tableaux de touches pour Office Outlook
>>>>> ' 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) = 2 ' Nombre de touches nécessaires
>>>>> TouchesEnvoi(1) = "+{TAB}" 'Revenir sur l'en-tête de l'email
>>>>> TouchesEnvoi(2) = "%v" ' Envoi du message avec Alt-v
>>>>> End Sub
>>>>> ****************************************
>>>>> Merci encore pour ton aide,
>>>>>
>>>>> Franck
>>>>> ======================================================== > >>>>> "isabelle" a écrit dans le message de news:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> bonjoour Franck,
>>>>>>
>>>>>> si tu utilise une méthode comme celle-ci :
>>>>>>
>>>>>> Sub envoieMailOutlook()
>>>>>> Application.DisplayAlerts = False
>>>>>> Dim ol As New Outlook.Application
>>>>>> Dim olmail As MailItem
>>>>>>
>>>>>> Set ol = New Outlook.Application
>>>>>> Set olmail = ol.CreateItem(olMailItem)
>>>>>> With olmail
>>>>>> .To = Range("a1").Value
>>>>>> .Subject = Range("b1").Value
>>>>>> For Each c In Selection
>>>>>> x = x & vbNewLine & c
>>>>>> Next
>>>>>> .Body = x
>>>>>> .Display '.ou Send
>>>>>> End With
>>>>>> Application.DisplayAlerts = True
>>>>>> End Sub
>>>>>>
>>>>>> tu mettre .visible = false
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> Franck P a écrit :
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Bonjour à tous,
>>>>>>>
>>>>>>> Je cherche à réaliser une application en VB Excel. Cette dernière
>>>>>>> envoie automatiquement un email par le biais d'Outlook mais je
>>>>>>> voudrais que toute la partie sous Outlook (réalisation du mail +
>>>>>>> envoi à l'aide de SendKeys) soit invisible pour l'utilisateur.
>>>>>>> Le problème est que Application.ScreenUpdation = False ne fonctionne
>>>>>>> que pour Excel mais pas pour la partie sous Outlook... Comment faire
>>>>>>> ?
>>>>>>>
>>>>>>> Merci d'avance à tous pour votre aide !
>>>>>>>
>>>>>>> Franck
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>
>>>
>
>
>
IIS : Internet Information Server
En gros, il s'agit d'un serveur Web. IIS est installé sur mon poste (lié à
d'autres applis de developpement), je ne saurais dire comment l'installé.
Je pense que l'erreur vient de la, mais je ne peux pas plus vous aider.
Laurent
"Franck P" a écrit :Bonjour Laurent,
Merci pour ton aide.
Avec le code que tu m'as envoyé, j'ai cette erreur : "Erreur d'exécution
'-2147220960 (80040220)': La valeur de configuration SendUsing est non
valide".
As-tu une idée ?
Que veux-tu dire par "il faut installer IIs" ? Est-ce lié au problème
ci-dessus ?
Merci encore et bonne journée,
Franck
"Laurent" a écrit dans le message de
news:
> Bonjour,
> C'est un problèle lié à Office 2003, avec Office 2007, je n'ai plus ce
> message, les mails partent de façon invisible... sauf si Outlook est
> fermé,
> il ouvre Outlook et le referme.
> J'ai une autre solution, il faut installé IIs sur le poste et utilisé
> CDO
> :
> Un morceau de mon code ...
> ...
> Set iMsg = CreateObject("CDO.Message")
> Set iConf = CreateObject("CDO.Configuration")
> iConf.Fields.Update
> With iMsg
> 'Création du message et ajout dans la queue
> On Error GoTo Suivant
> Set .Configuration = iConf
> .To = Sheets("EnvoiMail").Cells(NoLigne, 2)
> .BCC = ""
> .From = Expediteur
> .Subject = Objet
> .TextBody = Corps
> .AddAttachment PJ
> .Send
> On Error GoTo 0
> End With
> ...
>
> Laurent
>
> "Franck P" a écrit :
>
>> Bonjour Isabelle,
>>
>> Merci beaucoup pour ta réponse.
>> Malheureusement, elle ne marche pas... A moins que je n'ai pas compris
>> ta
>> phrase :
>> "tu mettre .visible = false" => faut-il insérer cela quelque part ?
>>
>> J'ai recopié ton code mais cela entraîne la présence d'une alerte
>> Outlook
>> concernant "Un programme tente d'envoyer automatiquement des courriers
>> en
>> votre nom [...]" ; ce qui ne me satisfait pas.
>>
>> Aujourd'hui j'utilise le code suivant pour ne pas avoir cette alerte
>> mais
>> Outlook apparaît à l'écran, chose que je cherche à éviter...
>> ****************************************
>> ' ------------------------------------------------------------------
>> Option Explicit
>> ' ------------------------------------------------------------------
>> 'Déclaration des tableaux qui recevront les touches à utiliser suivant
>> ' le logiciel de messagerie par défaut du système.
>> 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 Test()
>> ' DECLARATION DES VARIABLES
>> Dim Adresse As String
>> Dim Objet As String
>> Dim Corps As String
>> Dim PJ As String
>> Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
>> Dim i As Integer ' un compteur
>> Dim Client As Integer
>>
>> Adresse = ""
>> Objet = "Coucou"
>> Corps = "Test"
>>
>> ' Remarque : l'argument PJ (pièce jointe) est optionnel. S'il est
>> fourni,
>> ' c'est le chemin complet du fichier à joindre qui doit être fourni
>> ' pour joindre plusieurs pièces, il faudrait que PJ soit
>> ' un tableau et qu'il soit traité + bas par une boucle...
>> ' composés avec les arguments fournis
>> ' la syntaxe de base du mailto est la suivante :
>> ' mailto:?Subject=sujet du message&Body=corps du message
>> ' je ne prends pas en compte les copies, copies cachées
>> ' ou autres confirmation de lecture, je suppose
>> ' qu'il faudrait utiliser d'autre arguments de mailto...
>>
>> ' Le ? introduit les arguments
>> HyperLien = "mailto:" & Adresse & "?"
>> HyperLien = HyperLien & "Subject=" & Objet
>> HyperLien = HyperLien & "&Body=" & Corps
>> ' le & sépare les arguments
>>
>> Application.DisplayAlerts = False
>> ' Activation du lien
>> ActiveWorkbook.FollowHyperlink HyperLien
>>
>> Attendre 5 ' Appel d'une procédure qui temporise
>> ' c'est à dire que la procédure courante
>> ' (ici EnvoiEmail) est suspendue pendant 5s
>> ' cela permet d'Attendre que le client
>> ' de messagerie soit lancé et prêt
>> ' avant d'envoyer les touches
>> ' sinon ce serait le programme appelant
>> ' (ici Excel) qui recevrait les touches
>>
>> Office2003OutLook
>>
>> ' 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
>> ' dans TouchesPJ(0) on a stocké le nombre de touches
>> ' à envoyer au programme pour joindre une pièce
>> For i = 1 To TouchesPJ(0) ' pour chaque touche à envoyer
>> SendKeys TouchesPJ(i), True ' Envoi de la touches
>> 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) ' idem pour les touches d'envoi
>> ' du message
>> SendKeys TouchesEnvoi(i), True
>> Next i
>> ' Fin de la procédure principale
>>
>> Application.DisplayAlerts = True
>> MsgBox ("C'est fini !! Merci beaucoup.")
>>
>> End Sub
>>
>> ' -----------------------------------------------------------------
>> Private Sub Attendre(Secondes As Integer)
>> ' 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
>>
>> Private Sub Office2003OutLook()
>> 'Initialisation des tableaux de touches pour Office Outlook
>> ' 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) = 2 ' Nombre de touches nécessaires
>> TouchesEnvoi(1) = "+{TAB}" 'Revenir sur l'en-tête de l'email
>> TouchesEnvoi(2) = "%v" ' Envoi du message avec Alt-v
>> End Sub
>> ****************************************
>> Merci encore pour ton aide,
>>
>> Franck
>> ======================================================== >> >> "isabelle" a écrit dans le message de news:
>>
>> > bonjoour Franck,
>> >
>> > si tu utilise une méthode comme celle-ci :
>> >
>> > Sub envoieMailOutlook()
>> > Application.DisplayAlerts = False
>> > Dim ol As New Outlook.Application
>> > Dim olmail As MailItem
>> >
>> > Set ol = New Outlook.Application
>> > Set olmail = ol.CreateItem(olMailItem)
>> > With olmail
>> > .To = Range("a1").Value
>> > .Subject = Range("b1").Value
>> > For Each c In Selection
>> > x = x & vbNewLine & c
>> > Next
>> > .Body = x
>> > .Display '.ou Send
>> > End With
>> > Application.DisplayAlerts = True
>> > End Sub
>> >
>> > tu mettre .visible = false
>> >
>> > isabelle
>> >
>> > Franck P a écrit :
>> >> Bonjour à tous,
>> >>
>> >> Je cherche à réaliser une application en VB Excel. Cette dernière
>> >> envoie
>> >> automatiquement un email par le biais d'Outlook mais je voudrais
>> >> que
>> >> toute la partie sous Outlook (réalisation du mail + envoi à l'aide
>> >> de
>> >> SendKeys) soit invisible pour l'utilisateur.
>> >> Le problème est que Application.ScreenUpdation = False ne
>> >> fonctionne
>> >> que
>> >> pour Excel mais pas pour la partie sous Outlook... Comment faire ?
>> >>
>> >> Merci d'avance à tous pour votre aide !
>> >>
>> >> Franck
>> >>
>> >>
>>
>>
>>
IIS : Internet Information Server
En gros, il s'agit d'un serveur Web. IIS est installé sur mon poste (lié à
d'autres applis de developpement), je ne saurais dire comment l'installé.
Je pense que l'erreur vient de la, mais je ne peux pas plus vous aider.
Laurent
"Franck P" a écrit :
Bonjour Laurent,
Merci pour ton aide.
Avec le code que tu m'as envoyé, j'ai cette erreur : "Erreur d'exécution
'-2147220960 (80040220)': La valeur de configuration SendUsing est non
valide".
As-tu une idée ?
Que veux-tu dire par "il faut installer IIs" ? Est-ce lié au problème
ci-dessus ?
Merci encore et bonne journée,
Franck
"Laurent" <Laurent@discussions.microsoft.com> a écrit dans le message de
news: 5E9E916B-24CD-456B-869D-05D62141E4F0@microsoft.com...
> Bonjour,
> C'est un problèle lié à Office 2003, avec Office 2007, je n'ai plus ce
> message, les mails partent de façon invisible... sauf si Outlook est
> fermé,
> il ouvre Outlook et le referme.
> J'ai une autre solution, il faut installé IIs sur le poste et utilisé
> CDO
> :
> Un morceau de mon code ...
> ...
> Set iMsg = CreateObject("CDO.Message")
> Set iConf = CreateObject("CDO.Configuration")
> iConf.Fields.Update
> With iMsg
> 'Création du message et ajout dans la queue
> On Error GoTo Suivant
> Set .Configuration = iConf
> .To = Sheets("EnvoiMail").Cells(NoLigne, 2)
> .BCC = ""
> .From = Expediteur
> .Subject = Objet
> .TextBody = Corps
> .AddAttachment PJ
> .Send
> On Error GoTo 0
> End With
> ...
>
> Laurent
>
> "Franck P" a écrit :
>
>> Bonjour Isabelle,
>>
>> Merci beaucoup pour ta réponse.
>> Malheureusement, elle ne marche pas... A moins que je n'ai pas compris
>> ta
>> phrase :
>> "tu mettre .visible = false" => faut-il insérer cela quelque part ?
>>
>> J'ai recopié ton code mais cela entraîne la présence d'une alerte
>> Outlook
>> concernant "Un programme tente d'envoyer automatiquement des courriers
>> en
>> votre nom [...]" ; ce qui ne me satisfait pas.
>>
>> Aujourd'hui j'utilise le code suivant pour ne pas avoir cette alerte
>> mais
>> Outlook apparaît à l'écran, chose que je cherche à éviter...
>> ****************************************
>> ' ------------------------------------------------------------------
>> Option Explicit
>> ' ------------------------------------------------------------------
>> 'Déclaration des tableaux qui recevront les touches à utiliser suivant
>> ' le logiciel de messagerie par défaut du système.
>> 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 Test()
>> ' DECLARATION DES VARIABLES
>> Dim Adresse As String
>> Dim Objet As String
>> Dim Corps As String
>> Dim PJ As String
>> Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
>> Dim i As Integer ' un compteur
>> Dim Client As Integer
>>
>> Adresse = "franck.peixoto@arval.fr"
>> Objet = "Coucou"
>> Corps = "Test"
>>
>> ' Remarque : l'argument PJ (pièce jointe) est optionnel. S'il est
>> fourni,
>> ' c'est le chemin complet du fichier à joindre qui doit être fourni
>> ' pour joindre plusieurs pièces, il faudrait que PJ soit
>> ' un tableau et qu'il soit traité + bas par une boucle...
>> ' composés avec les arguments fournis
>> ' la syntaxe de base du mailto est la suivante :
>> ' mailto:dest@domaine?Subject=sujet du message&Body=corps du message
>> ' je ne prends pas en compte les copies, copies cachées
>> ' ou autres confirmation de lecture, je suppose
>> ' qu'il faudrait utiliser d'autre arguments de mailto...
>>
>> ' Le ? introduit les arguments
>> HyperLien = "mailto:" & Adresse & "?"
>> HyperLien = HyperLien & "Subject=" & Objet
>> HyperLien = HyperLien & "&Body=" & Corps
>> ' le & sépare les arguments
>>
>> Application.DisplayAlerts = False
>> ' Activation du lien
>> ActiveWorkbook.FollowHyperlink HyperLien
>>
>> Attendre 5 ' Appel d'une procédure qui temporise
>> ' c'est à dire que la procédure courante
>> ' (ici EnvoiEmail) est suspendue pendant 5s
>> ' cela permet d'Attendre que le client
>> ' de messagerie soit lancé et prêt
>> ' avant d'envoyer les touches
>> ' sinon ce serait le programme appelant
>> ' (ici Excel) qui recevrait les touches
>>
>> Office2003OutLook
>>
>> ' 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
>> ' dans TouchesPJ(0) on a stocké le nombre de touches
>> ' à envoyer au programme pour joindre une pièce
>> For i = 1 To TouchesPJ(0) ' pour chaque touche à envoyer
>> SendKeys TouchesPJ(i), True ' Envoi de la touches
>> 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) ' idem pour les touches d'envoi
>> ' du message
>> SendKeys TouchesEnvoi(i), True
>> Next i
>> ' Fin de la procédure principale
>>
>> Application.DisplayAlerts = True
>> MsgBox ("C'est fini !! Merci beaucoup.")
>>
>> End Sub
>>
>> ' -----------------------------------------------------------------
>> Private Sub Attendre(Secondes As Integer)
>> ' 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
>>
>> Private Sub Office2003OutLook()
>> 'Initialisation des tableaux de touches pour Office Outlook
>> ' 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) = 2 ' Nombre de touches nécessaires
>> TouchesEnvoi(1) = "+{TAB}" 'Revenir sur l'en-tête de l'email
>> TouchesEnvoi(2) = "%v" ' Envoi du message avec Alt-v
>> End Sub
>> ****************************************
>> Merci encore pour ton aide,
>>
>> Franck
>> ======================================================== >> >> "isabelle" <i@v> a écrit dans le message de news:
>> eKRSIEXsJHA.4140@TK2MSFTNGP02.phx.gbl...
>> > bonjoour Franck,
>> >
>> > si tu utilise une méthode comme celle-ci :
>> >
>> > Sub envoieMailOutlook()
>> > Application.DisplayAlerts = False
>> > Dim ol As New Outlook.Application
>> > Dim olmail As MailItem
>> >
>> > Set ol = New Outlook.Application
>> > Set olmail = ol.CreateItem(olMailItem)
>> > With olmail
>> > .To = Range("a1").Value
>> > .Subject = Range("b1").Value
>> > For Each c In Selection
>> > x = x & vbNewLine & c
>> > Next
>> > .Body = x
>> > .Display '.ou Send
>> > End With
>> > Application.DisplayAlerts = True
>> > End Sub
>> >
>> > tu mettre .visible = false
>> >
>> > isabelle
>> >
>> > Franck P a écrit :
>> >> Bonjour à tous,
>> >>
>> >> Je cherche à réaliser une application en VB Excel. Cette dernière
>> >> envoie
>> >> automatiquement un email par le biais d'Outlook mais je voudrais
>> >> que
>> >> toute la partie sous Outlook (réalisation du mail + envoi à l'aide
>> >> de
>> >> SendKeys) soit invisible pour l'utilisateur.
>> >> Le problème est que Application.ScreenUpdation = False ne
>> >> fonctionne
>> >> que
>> >> pour Excel mais pas pour la partie sous Outlook... Comment faire ?
>> >>
>> >> Merci d'avance à tous pour votre aide !
>> >>
>> >> Franck
>> >>
>> >>
>>
>>
>>
IIS : Internet Information Server
En gros, il s'agit d'un serveur Web. IIS est installé sur mon poste (lié à
d'autres applis de developpement), je ne saurais dire comment l'installé.
Je pense que l'erreur vient de la, mais je ne peux pas plus vous aider.
Laurent
"Franck P" a écrit :Bonjour Laurent,
Merci pour ton aide.
Avec le code que tu m'as envoyé, j'ai cette erreur : "Erreur d'exécution
'-2147220960 (80040220)': La valeur de configuration SendUsing est non
valide".
As-tu une idée ?
Que veux-tu dire par "il faut installer IIs" ? Est-ce lié au problème
ci-dessus ?
Merci encore et bonne journée,
Franck
"Laurent" a écrit dans le message de
news:
> Bonjour,
> C'est un problèle lié à Office 2003, avec Office 2007, je n'ai plus ce
> message, les mails partent de façon invisible... sauf si Outlook est
> fermé,
> il ouvre Outlook et le referme.
> J'ai une autre solution, il faut installé IIs sur le poste et utilisé
> CDO
> :
> Un morceau de mon code ...
> ...
> Set iMsg = CreateObject("CDO.Message")
> Set iConf = CreateObject("CDO.Configuration")
> iConf.Fields.Update
> With iMsg
> 'Création du message et ajout dans la queue
> On Error GoTo Suivant
> Set .Configuration = iConf
> .To = Sheets("EnvoiMail").Cells(NoLigne, 2)
> .BCC = ""
> .From = Expediteur
> .Subject = Objet
> .TextBody = Corps
> .AddAttachment PJ
> .Send
> On Error GoTo 0
> End With
> ...
>
> Laurent
>
> "Franck P" a écrit :
>
>> Bonjour Isabelle,
>>
>> Merci beaucoup pour ta réponse.
>> Malheureusement, elle ne marche pas... A moins que je n'ai pas compris
>> ta
>> phrase :
>> "tu mettre .visible = false" => faut-il insérer cela quelque part ?
>>
>> J'ai recopié ton code mais cela entraîne la présence d'une alerte
>> Outlook
>> concernant "Un programme tente d'envoyer automatiquement des courriers
>> en
>> votre nom [...]" ; ce qui ne me satisfait pas.
>>
>> Aujourd'hui j'utilise le code suivant pour ne pas avoir cette alerte
>> mais
>> Outlook apparaît à l'écran, chose que je cherche à éviter...
>> ****************************************
>> ' ------------------------------------------------------------------
>> Option Explicit
>> ' ------------------------------------------------------------------
>> 'Déclaration des tableaux qui recevront les touches à utiliser suivant
>> ' le logiciel de messagerie par défaut du système.
>> 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 Test()
>> ' DECLARATION DES VARIABLES
>> Dim Adresse As String
>> Dim Objet As String
>> Dim Corps As String
>> Dim PJ As String
>> Dim HyperLien As String ' Reçoit les éléments de l'hyperlien
>> Dim i As Integer ' un compteur
>> Dim Client As Integer
>>
>> Adresse = ""
>> Objet = "Coucou"
>> Corps = "Test"
>>
>> ' Remarque : l'argument PJ (pièce jointe) est optionnel. S'il est
>> fourni,
>> ' c'est le chemin complet du fichier à joindre qui doit être fourni
>> ' pour joindre plusieurs pièces, il faudrait que PJ soit
>> ' un tableau et qu'il soit traité + bas par une boucle...
>> ' composés avec les arguments fournis
>> ' la syntaxe de base du mailto est la suivante :
>> ' mailto:?Subject=sujet du message&Body=corps du message
>> ' je ne prends pas en compte les copies, copies cachées
>> ' ou autres confirmation de lecture, je suppose
>> ' qu'il faudrait utiliser d'autre arguments de mailto...
>>
>> ' Le ? introduit les arguments
>> HyperLien = "mailto:" & Adresse & "?"
>> HyperLien = HyperLien & "Subject=" & Objet
>> HyperLien = HyperLien & "&Body=" & Corps
>> ' le & sépare les arguments
>>
>> Application.DisplayAlerts = False
>> ' Activation du lien
>> ActiveWorkbook.FollowHyperlink HyperLien
>>
>> Attendre 5 ' Appel d'une procédure qui temporise
>> ' c'est à dire que la procédure courante
>> ' (ici EnvoiEmail) est suspendue pendant 5s
>> ' cela permet d'Attendre que le client
>> ' de messagerie soit lancé et prêt
>> ' avant d'envoyer les touches
>> ' sinon ce serait le programme appelant
>> ' (ici Excel) qui recevrait les touches
>>
>> Office2003OutLook
>>
>> ' 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
>> ' dans TouchesPJ(0) on a stocké le nombre de touches
>> ' à envoyer au programme pour joindre une pièce
>> For i = 1 To TouchesPJ(0) ' pour chaque touche à envoyer
>> SendKeys TouchesPJ(i), True ' Envoi de la touches
>> 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) ' idem pour les touches d'envoi
>> ' du message
>> SendKeys TouchesEnvoi(i), True
>> Next i
>> ' Fin de la procédure principale
>>
>> Application.DisplayAlerts = True
>> MsgBox ("C'est fini !! Merci beaucoup.")
>>
>> End Sub
>>
>> ' -----------------------------------------------------------------
>> Private Sub Attendre(Secondes As Integer)
>> ' 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
>>
>> Private Sub Office2003OutLook()
>> 'Initialisation des tableaux de touches pour Office Outlook
>> ' 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) = 2 ' Nombre de touches nécessaires
>> TouchesEnvoi(1) = "+{TAB}" 'Revenir sur l'en-tête de l'email
>> TouchesEnvoi(2) = "%v" ' Envoi du message avec Alt-v
>> End Sub
>> ****************************************
>> Merci encore pour ton aide,
>>
>> Franck
>> ======================================================== >> >> "isabelle" a écrit dans le message de news:
>>
>> > bonjoour Franck,
>> >
>> > si tu utilise une méthode comme celle-ci :
>> >
>> > Sub envoieMailOutlook()
>> > Application.DisplayAlerts = False
>> > Dim ol As New Outlook.Application
>> > Dim olmail As MailItem
>> >
>> > Set ol = New Outlook.Application
>> > Set olmail = ol.CreateItem(olMailItem)
>> > With olmail
>> > .To = Range("a1").Value
>> > .Subject = Range("b1").Value
>> > For Each c In Selection
>> > x = x & vbNewLine & c
>> > Next
>> > .Body = x
>> > .Display '.ou Send
>> > End With
>> > Application.DisplayAlerts = True
>> > End Sub
>> >
>> > tu mettre .visible = false
>> >
>> > isabelle
>> >
>> > Franck P a écrit :
>> >> Bonjour à tous,
>> >>
>> >> Je cherche à réaliser une application en VB Excel. Cette dernière
>> >> envoie
>> >> automatiquement un email par le biais d'Outlook mais je voudrais
>> >> que
>> >> toute la partie sous Outlook (réalisation du mail + envoi à l'aide
>> >> de
>> >> SendKeys) soit invisible pour l'utilisateur.
>> >> Le problème est que Application.ScreenUpdation = False ne
>> >> fonctionne
>> >> que
>> >> pour Excel mais pas pour la partie sous Outlook... Comment faire ?
>> >>
>> >> Merci d'avance à tous pour votre aide !
>> >>
>> >> Franck
>> >>
>> >>
>>
>>
>>