J'aimerais prévenir par email un groupe d'utilisateurs d'un fichier excel commun, lorsqu'une modification est faite. Seulement, si l'application outlook est fermée, j'aimerais prévenir l'utilisateur que outlook est fermé et qu'aucune notification ne pourra être envoyée s'il ne l'ouvre pas. Et j'aimerais le faire au moment où il sauvegarde. J'ai donc écrit dans le module thisworkbook:
Code:
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' avant de sauvegarder
' Avertir que Outlook est fermé et qu'aucune notification de changement du fichier ne sera envoyée
Dim Appli As Object
On Error Resume Next
Set Appli = GetObject(, "Outlook.Application")
If Err.Number = 1 Then
MsgBox "Der Process " & Process.Name & " ist nicht activ. ID Nr: " & Process.ProcessID & Chr(10) & Chr(10) & _
"Keine Meldung über Änderung an diesen File wird gemeldet"
Else
End If
End Sub
Or, rien ne se passe lorsque je sauve le fichier avec outlook fermé...
Merci pour toute tentative d'éclairage de lanterne...
j'ai trouvé ceci ... non testé j'ai pas Outlook !?
' Vérification de l'ouverture de la messagerie
'
Set Appli = CreateObject("Outlook.Application")
'
If Appli.Explorers.Count > 0 Then GoTo OutLookEstDemarre
MsgBox "Vous devez démarrer votre messagerie : Maintenant !", vbExclamation, "Action à faire..."
GoTo Fin
'
' On peut commencer l'enregistrement
'
OutLookEstDemarre:
Function OutlookOuvert() As Boolean
Dim oOL As Object
On Error Resume Next
Set oOL = GetObject(, "Outlook.Application")
On Error GoTo 0
OutlookOuvert = Not (oOL Is Nothing)
Set oOL = Nothing
End Function
puis mettre la ligne ci-dessous dans ta macro, ça te lance OutLook :
VB:
If OutlookOuvert = False Then i = Shell("Outlook", vbNormalNoFocus)
J'ai tenté ton code, mais il y avait encore quelque chose avec le "GoTo" qui a dû m'échapper, ça ne compilait pas..
Salut Yaloo,
Alors là je dis Monsieur! Ca fonctionne au poil! J'ai encore ajouté une petite boîte de dialogue afin de ne pas forcer l'utilisateur à ouvrir Outlook sans son consentement:
Code:
If OutlookOuvert = False Then
If MsgBox("Outlook fermé" & Chr(10) & Chr(10) & "Pas de notification possible" _
& Chr(10) & Chr(10) & "Ouvrir Outlook?", vbYesNo, "Outlook nicht aktiv") = vbYes Then
i = Shell("Outlook", vbNormalNoFocus)
End If
End If
Dois-je encore faire une manip' quelconque afin de dire que le problème est résolu?
c'est normal que cela ne fonctionne pas en l'état.
il ne faut pas compiler car le branchement sur fin n'est pas présent !
ceci est un exemple qu'il faut adapter, ce n'est du tout prêt !
il faut l'incorporer dans l'environnement de ta procédure !
le goto fin représente la sortie de la procédure !
si tu veux du tout prêt alors il faut d'abord préparer ta procédure pour incorporer cette routine.