XL 2016 Problème macro ouverture Outlook a l'arrièce plan avec la fonction Shell

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

NicoleBelge

XLDnaute Nouveau
Bonjour à tous,

Je bloque depuis 2 jours sur une macro afin d'envoyer automatiquement un mail depuis Excel. En effet, je souhaite tester si Outlook est déjà ouvert sur le PC avant l'envoi du mail et s'il ne l'est pas alors l'ouvrir et le mettre à l'arrière plan. Pour couvrir et minimizer j'utilise la fonction Shell (Chemin, vbhide) - vous trouverez le code un peu plus bas.

Lorsque j'exécute cette macro en mode pas à pas, je n'ai aucun problème. Lorsque je l'exécute en mode "normal", Outlook s'ouvre puis reste en premier plan. Après plusieurs recherches, j'ai trouvé une macro qui est supposée réduire Outlook, mais la encore rien ne se passe. Je ne comprends pas d'ou vient le problème et j'espère que vous pourrez m'aider.

Voici mon code :

'Macro de test de test d'ouverture d'outlook
Sub TestOuvertureOutlook()
Set OLk_Appli = CreateObject("Outlook.Application")
Dim NomClasseur As String
NomClasseur = ThisWorkbook.Name

If OLk_Appli.Explorers.Count > 0 Then
'Outlook est ouvert

Else
'Outlook est fermé
OLk_OK = Shell("C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE", vbHide)

End If

Call MiniOutlook
'Windows(NomClasseur).Activate
End Sub

'Macro de réduction d'outlook
Sub MiniOutlook()
On Error Resume Next


With GetObject(, "Outlook.Application")
.ActiveWindow.WindowState = 1 ' olMinimized = 1
End With
End Sub


Merci bien
 

Pièces jointes

Bonjour,

Essayez avec le code suivant
VB:
Sub OutlookOpenMinimized()
Dim OL As Object    'Outlook.Application
Dim NS As Object    'Namespace
Dim MF As Object    'MAPIFolder
Dim EXP As Object   'Explorer
'---
Set OL = CreateObject("Outlook.Application")
If OL.Explorers.Count = 0 Then
  Set NS = OL.GetNamespace("MAPI")
  Set MF = NS.GetDefaultFolder(6)   '6=olFolderInbox
  Set EXP = OL.Explorers.Add(MF, 0) '0=olFolderDisplayNormal
  EXP.Activate
  EXP.WindowState 1                 '1=olMinimized
End If
Set OL = Nothing
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour