XL 2019 VBA demande confirmation de connexion outlook

David62800

XLDnaute Nouveau
Bonjour le fil
existe t'il une action pour valider la demande de connexion outlook avant l envoie du mail

La macro fonctionne parfaitement mais le mail se met en boîte d envoie tant que l on a pas cliquer sur demande de confirmation de connexion sur Outlook 2019
Une idée ?
Merci
 

xUpsilon

XLDnaute Accro
Bonjour,

Il n'y a pas de situation idéale à ma connaissance. Le pop up est une sécurité de Outlook.
On peut toujours désactiver ce niveau de sécurité en accédant aux propriétés de l'app Outlook, comme expliqué sur ce lien.
Surtout, lisez toute la ressource avant d'employer la méthode qui y est indiquée. Retirer un niveau de sécurité est rarement une bonne idée.

Bonne journée,
 

mromain

XLDnaute Barbatruc
Bonjour David62800, xUpsilon, le forum,

Il est possible de savoir si Outlook est en mode hors connexion ou en ligne avec la propriété Offline.

Bien que cette propriété soit en lecture seule, il est possible de modifier son statut en simulant un clic sur l’icône Travailler en mode hors connexion avec ce code :
VB:
Application.ActiveExplorer.CommandBars.ExecuteMso "ToggleOnline"
(où Application est une application Outlook)

Ce code fonctionne, mais par contre, la méthode CommandBars de l'objet Explorer est dépréciée. C'est donc normal de ne pas la trouver dans la saisie semi-automatique.


A+
 

David62800

XLDnaute Nouveau
Bonjour David62800, xUpsilon, le forum,

Il est possible de savoir si Outlook est en mode hors connexion ou en ligne avec la propriété Offline.

Bien que cette propriété soit en lecture seule, il est possible de modifier son statut en simulant un clic sur l’icône Travailler en mode hors connexion avec ce code :
VB:
Application.ActiveExplorer.CommandBars.ExecuteMso "ToggleOnline"
(où Application est une application Outlook)

Ce code fonctionne, mais par contre, la méthode CommandBars de l'objet Explorer est dépréciée. C'est donc normal de ne pas la trouver dans la saisie semi-automatique.


A+
bonjour
je viens de teste ca ne fonctionne pas

david
 

mromain

XLDnaute Barbatruc
Bonjour David62800, le forum,

David62800 à dit:
bonjour
je viens de teste ca ne fonctionne pas

david

Je viens de tester cette procédure :
VB:
Sub ChangeConnection()
    Application.ActiveExplorer.CommandBars.ExecuteMso "ToggleOnline"
End Sub

Elle fonctionne et bascule bien entre les modes connecté et travail hors connexion.

Peut-être que le souci se trouve ailleurs.
Peux-tu nous montrer ton code ?

A+
 

David62800

XLDnaute Nouveau
Bonjour David62800, le forum,



Je viens de tester cette procédure :
VB:
Sub ChangeConnection()
    Application.ActiveExplorer.CommandBars.ExecuteMso "ToggleOnline"
End Sub

Elle fonctionne et bascule bien entre les modes connecté et travail hors connexion.

Peut-être que le souci se trouve ailleurs.
Peux-tu nous montrer ton code ?

A+
Bonjour le fil c'est bien pour activer outlook pas explorer ?
Je vais tester
Merci
 

David62800

XLDnaute Nouveau
bonjour le fil
j ai testé ca ne fonctionne pas chez moi
erreur d'exécution 438
avec ce code seul
Sub ChangeConnection()
Application.ActiveExplorer.CommandBars.ExecuteMso "ToggleOnline"
End Sub
david
 

Pièces jointes

  • Classeur2.xlsx
    231.7 KB · Affichages: 2

David62800

XLDnaute Nouveau
Bonjour David62800, le forum,




Il faudrait que tu montres ton code VBA...

A+
Bonjour
Voici mon code vba

Sub envoyermailorigine()
Application.ScreenUpdating = False
Dim Mafeuille As Worksheet, NbLigne%, Plage As Range
NbLigne = Sheets("Dashboard").Application.CountIf([Tableau2[PROJETS]], "><")
Set Plage = Sheets("Dashboard").Range("A3:M" & NbLigne + 4)
Plage.Select
ActiveWorkbook.EnvelopeVisible = True
Set Mafeuille = ThisWorkbook.Sheets("Dashboard")

With Range("A1:M" & NbLigne).Parent.MailEnvelope.Item
.To = Mafeuille.Range("Z3").Value & Mafeuille.Range("Z4").Value
.Subject = Mafeuille.Range("Z5").Value
.body = Mafeuille.Range("Z6").Value
.Display
.send
End With

MsgBox "votre mail a été envoyé", vbInformation + vbOKOnly, "confirmation d'envoi"

Application.ScreenUpdating = True

Sheets("Dashboard").Select
Range("A4").Select
End Sub
 

mromain

XLDnaute Barbatruc
Re-bonjour David62800,

Je t'avoue n'avoir jamais utilisé la méthode MailEnvelope.
Cependant, la procédure ci-dessous peut peut-être répondre à ton problème :
VB:
Sub ActiverConnexionOutlook()
Dim l_o_olApp As Object    'Outlook.Application
    'récupérer la session Outlook ouverte ou en ouvrir une
    On Error Resume Next
    Set l_o_olApp = GetObject(, "Outlook.Application")
    On Error GoTo 0
    If l_o_olApp Is Nothing Then Set l_o_olApp = CreateObject("Outlook.Application")
    'afficher la boite de réception
    If l_o_olApp.ActiveExplorer Is Nothing Then l_o_olApp.Session.GetDefaultFolder(6).Display      '6 = olFolderInbox
    'activer le mode 'connecté'
    If l_o_olApp.Session.Offline Then l_o_olApp.ActiveExplorer.CommandBars.ExecuteMso "ToggleOnline"
End Sub

Elle :
  • ouvre Outlook si celui-ci est fermé ;
  • active le mode connecté si ce n'est déjà fait.

Pour l'utiliser, il te faudra rajouter la procédure à ton projet VBA et appeler la procédure ActiverConnexionOutlook au début de ta procédure envoyermailorigine.

A+
 

David62800

XLDnaute Nouveau
Re-bonjour David62800,

Je t'avoue n'avoir jamais utilisé la méthode MailEnvelope.
Cependant, la procédure ci-dessous peut peut-être répondre à ton problème :
VB:
Sub ActiverConnexionOutlook()
Dim l_o_olApp As Object    'Outlook.Application
    'récupérer la session Outlook ouverte ou en ouvrir une
    On Error Resume Next
    Set l_o_olApp = GetObject(, "Outlook.Application")
    On Error GoTo 0
    If l_o_olApp Is Nothing Then Set l_o_olApp = CreateObject("Outlook.Application")
    'afficher la boite de réception
    If l_o_olApp.ActiveExplorer Is Nothing Then l_o_olApp.Session.GetDefaultFolder(6).Display      '6 = olFolderInbox
    'activer le mode 'connecté'
    If l_o_olApp.Session.Offline Then l_o_olApp.ActiveExplorer.CommandBars.ExecuteMso "ToggleOnline"
End Sub

Elle :
  • ouvre Outlook si celui-ci est fermé ;
  • active le mode connecté si ce n'est déjà fait.

Pour l'utiliser, il te faudra rajouter la procédure à ton projet VBA et appeler la procédure ActiverConnexionOutlook au début de ta procédure envoyermailorigine.

Bonjour nromain nickel ça fonctionne
Depuis le tps que je cherche
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 210
Messages
2 086 279
Membres
103 170
dernier inscrit
HASSEN@45