Outlook en premier plan

Fermé
Flomen - 17 avril 2020 à 23:27
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 - 28 avril 2020 à 13:45
Bonjour,

Mon problème:

Via un bouton sous Access, je prépare un mail que j'envoie . display ou par .send en VBA.
Tout fonctionne correctement.

Cependant, Outlook s'ouvre en second plan, l'application Access reste en premier plan !. Je souhaiterais que Outlook passe en premier plan après l'envoi de la commande . display ou .send

Avez vous la solution ?

Merci

Configuration: Android / Chrome 81.0.4044.96
A voir également:

18 réponses

yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 Ambassadeur 1 557
18 avril 2020 à 13:58
bonjour, tu nous permettras de mieux t'aider en nous montrant ton code.
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
18 avril 2020 à 14:10
se pourrait-il que ton code VBA fasse repasser Access en avant plan?
0
Bonjour,
Voici mon code qui fonctionne très bien, cependant je n'arrive pas a mettre Outlook en premier plan !

Merci pour votre aide

Mon Code :

Function EnvViaOutlook(DestMail As String, CCMail As String, SujetMail As String, TxtMail As String, Signature As String, Optional PJ1 As String) As String
Dim OL As Outlook.Application, mi As Outlook.MailItem
On Error GoTo OLMailErr
Set OL = New Outlook.Application
Set mi = OL.CreateItem(olMailItem)
With mi
.To = DestMail
.CC = CCMail
.Subject = SujetMail
.Body = TxtMail
.HTMLBody = "Test <b>Signature<\b>" & "<br>" & .HTMLBody
.Display
End With
Set mi = Nothing: Set OL = Nothing
Exit Function
OLMailErr:
MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
Exit Function
End Function
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
18 avril 2020 à 19:41
comment utilises-tu cette fonction? c'est peut-être après l'avoir appelée que Access fait quelque-chose et revient en avant plan.
0
Bonjour,
Dans une fonction, j'appelle cette fonction pour créer un mail puis l'afficher (.Display) afin que l'utilisateur puisse l'adapté.
Tu peux essayer avec le code que j'ai joint
Merci
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
18 avril 2020 à 23:54
Bonjour,

tu peux tester ce code directement dans une sub d'un bouton, pour voir...

Private Sub boutonTest_Click()
Dim OL As Outlook.Application, mi As Outlook.MailItem
On Error GoTo OLMailErr
Set OL = New Outlook.Application
Set mi = OL.CreateItem(olMailItem)
With mi
.To = DestMail
.CC = CCMail
.Subject = SujetMail
.Body = TxtMail
.HTMLBody = "Test <b>Signature<\b>" & "<br>" & .HTMLBody
.Display
End With
Set mi = Nothing: Set OL = Nothing
Exit Sub
OLMailErr:
MsgBox "Erreur : " & Err.Number & vbCrLf & Err.Description
Exit Sub
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,
Ta solution ne change rien, c'est exactement le même code avec Function remplacé par SUB
Si tu as Access, tu peux t'en rendre compte en testant ce code, il manque juste la commande pour mettre Outlook en premier plan
Merci
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711
19 avril 2020 à 09:04
Bonjour a vous tous,

Je suis cette demande depuis le debut et comme d'autre s'en occupaient, j'ai passe la main momentanement.
flomen:
J'ai teste votre code sur Access et pas de probleme Outlook et bien en premier plan avec .display. Ce qui est normal. Je fait ca couramment, principalement avec Excel pour tester le contenu des @Mail a envoyer, mais ca ne change rien a la chose
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
19 avril 2020 à 09:29
Je pense que cela ne sert à rien de mettre Outlook en avant plan, car il l'est déjà au moment du .display. Access revient ensuite en avant plan, peut-être suite à une action faite dans la fonction appelante.
Peux-tu partager ton fichier?
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
19 avril 2020 à 09:30
As-tu testé la suggestion de RV71 (via un simple bouton)?
0
Bonjour,
Que veux tu dire par Un simple bouton ?
Je test avec un bouton dans lequel j'ai mis l'exécution du code sur l’événement clic
Regardes le code est dis-moi ce qu'il faut modifier ou as tu un autre code pour afficher un mail avant de l'envoyer
Merci
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
19 avril 2020 à 11:44
Peux-tu partager ton fichier?
0
Bonjour,
Je ne comprends pas ta demande : Peux-tu partager ton fichier?
De quel fichier s'agit il ?
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
19 avril 2020 à 13:24
As-tu essayé de mettre le code sur un bouton ?

Car je l'ai fait (sans passer par une fonction) et cela fontionne.

Comme dit yg_be, partage ta base de données (en enlevant les données strictement confidentielles), en utilisant par exemple https://fr.fromsmash.com/

A+
0
Bonjour,
Ca ne fonctionne pas " SUB" et "FUNCTION"
J'ai une mini base 692 K, comment puis-je la partager avec vous ?
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
Modifié le 20 avril 2020 à 17:30
Comme mentionné juste au-dessus (lis) : https://fr.fromsmash.com/ ou vu la petite taille https://www.cjoint.com/

A+
0
Je viens de partager la base Access, voici le lien https://www.cjoint.com/c/JDup5xiHoxP

Merci pour votre aide
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
21 avril 2020 à 08:15
j'ai testé avec ton fichier, et le message s'affiche en avant-plan.
j'ai testé avec Outlook déjà ouvert, ou pas: même comportement.
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
20 avril 2020 à 18:34
Il y avait plein de références cochées, je les ai enlevées, et ça a l'air d'être OK.

https://www.cjoint.com/c/JDuqHu51InU

A+
0
Merci pour ton aide,
Je viens d'essayer avec la base que tu as corrigée (3 références) malheureusement ça ne fonctionne toujours pas !
Pour information, j'utilise office 2013 et Windows 10

Encore merci, peut être auras tu une autre solution !
0
J'ai une autre question, avec cette méthode, je peux créer un mail puis l'envoyer, cependant je souhaiterais l'insertion de la signature telle quelle est définie dans Outlook, je n'ai pas trouvé la solution
Merci
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 711 > flomen
21 avril 2020 à 10:59
0
flomen > f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024
21 avril 2020 à 15:46
Merci, ça fonctionne parfaitement, j'ai pu intégrer un logo (jpg) dans la signature avec du code html
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
21 avril 2020 à 14:41
Bonjour,

sincèrement je sèche, puisque cela fonctionne chez moi (win7 + office 2013 32bits).

Tu peux essayer la base sur une autre machine ??

A+
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
21 avril 2020 à 14:47
J'ai testé en ouvrant Outlook avant, ça fonctionne aussi, peut-être que du coup cela va fonctionner chez toi.
Par contre, c'est crado, car en cas de changement de version outlook, faudra modifier le vba...

Vois le fichier modifié ici --> https://www.cjoint.com/c/JDvmTYg3xgU
0
Effectivement avec cette méthode ça fonctionne, si l'utilisateur envoi plusieurs mails, avec cette méthode, à chaque fois on ouvre une nouvelle sessions Outlook, donc beaucoup de sessions ouvertes !
Merci pour tout le temps
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31 > flomen
21 avril 2020 à 15:53
Comment cela ?

S'il ferme outook, la session se ferme, no ?

A+
0
flomen > RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024
21 avril 2020 à 16:16
Quand je dis plusieurs sessions, ce sont toutes les session ouverte à chaque envoi de mail, peut être peut on fermer la session Outlook que l'on a ouverte ?, le fait d'envoyer le mail, cela ferme la fenêtre du mail mais pas Outlook !
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
Modifié le 21 avril 2020 à 16:24
Vu que la fenêtre Outlook est devant celle de Access, l'utilisateur devra la fermer pour revenir sur Access, à moins qu'il ne la réduise volontairement, mais ce n'est pas le comportement habituel.

Sinon, oui, on peut killer le processus Outlook (s'il existe) avant de déclencher la création du mail...
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
21 avril 2020 à 17:19
Mais cela n'explique pas pourquoi cela ne fonctionne pas sans le shell...

As-tu outlook de défini comme programme par défaut ?

A+
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
21 avril 2020 à 17:35
chez moi, Outlook n'est pas défini comme programme par défaut pour email, et tout fonctionne bien avec le fichier de départ de flomen.
0
Aurais tu le code pour fermer Outlook , ce qui me permettrai d'utiliser ta méthode : Ouverture Outlook avec le code que tu ma donner, envoi du mail et pour terminer fermer Outlook pour éviter d'avoir des sessions d'empilées
0
flomen > yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024
21 avril 2020 à 18:55
Non il n'était pas défini par défaut, je l'ai défini par défaut mais çà ne change rien !
J'ai fait un essai sur un deuxième ordinateur, même problème ! Outlook se cache toujours !
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31 > flomen
21 avril 2020 à 19:38
On ne peut pas savoir dans Access ce que l'utilisateur a fait dans Outlook, donc à quel moment le fermer.
Accèss n'a plus la main quand l'utilisateur écris son message dans Outlook.
Il faut :
1/ vérifier si outlook est ouvert
2/ si ouvert, le fermer
3/ Relancer Outlook avec le code

Mais je reste persuadé que 99% des utilisateurs font fermer Outlook pour revenir à Access...
0
Flomen > RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024
27 avril 2020 à 08:51
Bonjour,
Je suis toujours à la recherche d'une solution,
je ne suis pas le seul à avoir le problème voir :

https://www.commentcamarche.net/forum/affich-34949745-forcer-la-fenetre-d-envoi-outlook-en-premier-plan-access-2013-16

J'ai l'essai sur un autre ordinateur après avoir tout réinstallé Windows 10 et Office 2013, toujours le problème !
La ou j'ai un doute, c'est sur Windows 10 car toi tu me dis que çà fonctionne, la différence c'est toi tu est en Windows 7.
Je vais voir si je peux réinstaller un Windows 7.
Merci
0
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 31
Modifié le 21 avril 2020 à 19:51
Bon,

voici le code à mettre sur le bouton :

Private Sub Go_Click()

'--- On ferme le Processus Outlook ---
Dim ovc As Object
Dim sQuery As String
Dim oproc
Set ovc = GetObject("winmgmts:root\cimv2")
sQuery = "select * from win32_process where name='" & "Outlook.EXE" & "'"
For Each oproc In ovc.execquery(sQuery)
oproc.Terminate
Next
Set ovc = Nothing

' on relance outlook

Dim SessionOutlook
Const Chemin As String = "C:\Program Files\Microsoft Office\office15\OUTLOOK.exe" '  ---> tu adaptes ce chemin si c'est nécessaire
SessionOutlook = Shell(Chemin, 1)
Dim MonOutlook As Outlook.Application
Dim MonMessage As Outlook.MailItem
 
On Error GoTo Err_envoyerMail
 
    ' ===== Initialisation =====
    Set MonOutlook = CreateObject("Outlook.Application")
    Set MonMessage = MonOutlook.CreateItem(0)
 
    ' ===== Création de l'email =====
    With MonMessage
        .To = "menon.florent@gmail.com"
        .Subject = "Sujet de ce mail"
        .Body = "Ici le contenu du mail à envoyer"
        ' Affiche le mail (commenter la ligne pour envoi du mail en tâche de fond)
        .Display
        ' Envoie le mail automatiquement (décommenter la ligne pour envoi du mail en tâche de fond)
        '.Send
    End With
 
Exit_envoyerMail:

    Set MonOutlook = Nothing
    Exit Sub
 
Err_envoyerMail:
    Select Case Err.Number
        Case Else
            MsgBox "Erreur n°" & Err.Number & vbCrLf & "Description : " & Err.Description & vbCrLf & "Source : " & Err.Source, vbCritical, "Erreur"
    End Select
    Resume Exit_envoyerMail
 


End Sub
0