Ouvrir une page de facon caché (ou arriere plan)

Bonjour à tous,

J'ai un magnifique programme macro qui envoi des mails automatiquement. problème pour que le mail soit envoyé il faut ouvrir outlook, sinon il reste en attente jusqu’à ce que outlook soit ouvert. J'ai donc développé la macro afin d'ouvrir outlook de façon automatique mais pas moyens de l'ouvrir en arrière plan, ou de façon caché (si c'est possible). je vous mets en code la partie du programme concernée.

Merci de toutes aide,

cordialement Babuf

Dim SessionOutlook, myOlApp
   Const Chemin As String = "C:\Program Files\Microsoft Office\Office12\OUTLOOK"

    On Error Resume Next
    Set Appli = GetObject(, "Outlook.Application")

    If Appli Is Nothing Then

            SessionOutlook = Shell(Chemin, 1)

        Else

            myOlApp.Quit
            SessionOutlook = Shell(Chemin, 1)
    End If
    End With

Bonjour,

Je suis loin d'être un expert dans ce genre de sport, d'ailleurs j'ai arrêté depuis plusieurs années, mais je trouve ton truc bien compliqué.

Je te donne le code que j'utilisais il y a quelques années pour les mailing en nombre.

Bien sur il n'y a que la partie "Envoie du Mail" le reste de la macro c'est la définition du texte, des adresses mail et des pièces jointes : ça tu peux deviner : ce sont les variables...

Bref mon code pour l'envoie :

Sub SendMOLE(Adresse$, Objet$, Corps$, Optional PJ$, Optional Cc$, Optional Bcc$)
On Error GoTo GESTERRMEL
Dim MonAppliOutlook As New Outlook.Application
Dim MonMail As Outlook.MailItem
Dim MaPiece As Outlook.Attachments
Set MonMail = MonAppliOutlook.CreateItem(olMailItem)
    With MonMail
        .To = Adresse
        .Subject = Objet
        .Body = Corps
        If Not PJ = "" Then
            Set MaPiece = .Attachments
            MaPiece.Add PJ, olByValue
        End If
        .Send
    End With
Exit Sub
GESTERRMEL:
End Sub

Et je n'ai pas le souvenir de voir la fenêtre Outlook dans ces conditions (D'ailleurs j'avais une barre de défilement qui montrait la progression des envois donc ça aurait surement pas été très compatible avec la barre de progression...)

A+

Je suis bien conscient que ma macro est surchargée, 2 points pour expliquer ça j'ai découvert l’existence des macros en écrivant ce programme, et le programme marche comme ça donc ... je vais pas me prendre la tête pour rien.

En revanche, je suis obligé d'ouvrir outlook quelque soit le programme (long, court, efficace, ou pas...) sinon le mail reste en attente dans la boite d'envoi.

Merci de ton aide

aidez moi

Ecoute laisse tomber ton magnifique programme macro qui envoie des mails automatiquement et essaie le mien :

Sub galopin()
Dim SObj$, SMsg$, SPJ$, SAdr$
SAdr = Range("AdMel")
SObj = Range("Sujet")
SMsg = Range("Message")
SPJ$ = Range("PJointe")
SendMOLE Adresse:=SAdr, Objet:=SObj, Corps:=SMsg, PJ:=SPJ
End Sub

et rajouter la macro donnée plus haut...

' il faut ajouter la bibliothèque "Microsoft Outlook 11.0 Object Library" au projet. (Cocher cette bibliothèque dans Outils Références...)

Bien sur il faut remplacer le contenu des variables par les valeurs qui te conviennent... Pour moi toutes ces valeurs étaient dans des cellules nommées ( Dans le Gestionnaire de nom) : ça évite tous les problèmes de mise en forme...

A+

Alors petit problème, le SendMOLE n'est pas une fonction reconnue par ma version, et le premier programme que tu as donné n'est carrément pas détecté comme tel...

Tu vas dans le menu VBA : Outils > Préférences...

Cocher "Microsoft Outlook 11.0 Object Library" selon la version Excel il faudra prendre la version présente (14 pour Excel 2010...)

Tu crées un module standart (Module1...)

Tu mets dedans les 2 Sub Galopin() et Sub SendMole()

SendMole tu n'as rien à modifier.

Galopin y a juste à donner les bonnes valeurs aux variables.

Quand tu veux envoyer ton mail tu actives la Sub Galopin() qui appellera la Sub SendMole()

Moi ça ne m'a jamais posé de problème. Si ça marche pas, tu m'enverras ton machin, je mettrai le nez dedans pour vérifier (ça fait une dizaine d'année que je ne m'en sert plus, de plus j'ai allégé pas mal de choses car je faisais des envois en nombre avec. Jai donc supprimé tout ce qui est tempo, barre de progression, boucles) mais l'essentiel y est...

Je viens quand même de vérifier et chez moi ça marche sans problème.

Nota : Pour la pièce jointe, le string doit être de la forme :

"C:\blabla\truc\machin.jpg"

A+

erreur ed'execution 1004 : La méthode Range de l'objet global a échoue

Je ne sais pas quoi faire...

Joindre ton fichier...

non c'est au niveau de l'adresse mail

SAdr = Range("AdMel")

que j'ai bien sur définie ...

Voir en pièce jointe

J'ai rajouté une petite fonction pour pouvoir faire un message de plusieurs lignes confortablement.

22test-mail.xlsm (17.89 Ko)

Je te remercie, mais le mail doit ce faire automatiquement à partir d'un tableau déjà existant, le message s'adapte donc en fonction de certaine cellule ( ce que j'ai déjà sur ma macro existante.) De plus sur ton excel la bibliothèque n'est pas existante ...

Rechercher des sujets similaires à "ouvrir page facon cache arriere plan"