Bonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
Laurent
Bonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2netBonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2net
Bonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
Laurent
Bonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2netBonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
P.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2netBonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2netBonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
P.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2net
Bonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2net
Bonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
Laurent
Bonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
P.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2netBonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2netBonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Merci zOrg2net
C'est effectivement une bonne solution. Cela veut dire que s'ils décident de
fermer le document ils ne pourront pas faire machine arrière, le document
sera forcément fermer en enregistrant ou pas. Ca ne me satisfait que
moyenement.
Je vais parler de ma façon de travailler, j'enregistre très souvent mon
travail, donc à la fermeture si j'ai le message me demandant d'enregistrer ou
non j'ai un doute, dans ce cas j'aurais tendance à faire annuler pour
revérifier avant de fermer... et la ca ne serait pas possible.
LaurentP.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2netBonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2netBonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Merci zOrg2net
C'est effectivement une bonne solution. Cela veut dire que s'ils décident de
fermer le document ils ne pourront pas faire machine arrière, le document
sera forcément fermer en enregistrant ou pas. Ca ne me satisfait que
moyenement.
Je vais parler de ma façon de travailler, j'enregistre très souvent mon
travail, donc à la fermeture si j'ai le message me demandant d'enregistrer ou
non j'ai un doute, dans ce cas j'aurais tendance à faire annuler pour
revérifier avant de fermer... et la ca ne serait pas possible.
Laurent
P.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2net
Bonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2net
Bonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
Laurent
Bonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Merci zOrg2net
C'est effectivement une bonne solution. Cela veut dire que s'ils décident de
fermer le document ils ne pourront pas faire machine arrière, le document
sera forcément fermer en enregistrant ou pas. Ca ne me satisfait que
moyenement.
Je vais parler de ma façon de travailler, j'enregistre très souvent mon
travail, donc à la fermeture si j'ai le message me demandant d'enregistrer ou
non j'ai un doute, dans ce cas j'aurais tendance à faire annuler pour
revérifier avant de fermer... et la ca ne serait pas possible.
LaurentP.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2netBonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2netBonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour Laurent,
Je reprends le fil, perdu à cause de mes activités.
Si tu testes ce code, tu verras que l'utilisateur n'a qu'un choix, celui
d'enregistrer le classeur, sinon il ne peut pas le fermer. Il ne peut pas
annuler non plus, c'est: oui, alors j'enregistre ou c'est non: alors je ne
sors pas du classeur. C'est assez hard, je sais.
zOrg2netMerci zOrg2net
C'est effectivement une bonne solution. Cela veut dire que s'ils décident de
fermer le document ils ne pourront pas faire machine arrière, le document
sera forcément fermer en enregistrant ou pas. Ca ne me satisfait que
moyenement.
Je vais parler de ma façon de travailler, j'enregistre très souvent mon
travail, donc à la fermeture si j'ai le message me demandant d'enregistrer ou
non j'ai un doute, dans ce cas j'aurais tendance à faire annuler pour
revérifier avant de fermer... et la ca ne serait pas possible.
LaurentP.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2netBonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2netBonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour Laurent,
Je reprends le fil, perdu à cause de mes activités.
Si tu testes ce code, tu verras que l'utilisateur n'a qu'un choix, celui
d'enregistrer le classeur, sinon il ne peut pas le fermer. Il ne peut pas
annuler non plus, c'est: oui, alors j'enregistre ou c'est non: alors je ne
sors pas du classeur. C'est assez hard, je sais.
zOrg2net
Merci zOrg2net
C'est effectivement une bonne solution. Cela veut dire que s'ils décident de
fermer le document ils ne pourront pas faire machine arrière, le document
sera forcément fermer en enregistrant ou pas. Ca ne me satisfait que
moyenement.
Je vais parler de ma façon de travailler, j'enregistre très souvent mon
travail, donc à la fermeture si j'ai le message me demandant d'enregistrer ou
non j'ai un doute, dans ce cas j'aurais tendance à faire annuler pour
revérifier avant de fermer... et la ca ne serait pas possible.
Laurent
P.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2net
Bonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2net
Bonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
Laurent
Bonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +
Bonjour Laurent,
Je reprends le fil, perdu à cause de mes activités.
Si tu testes ce code, tu verras que l'utilisateur n'a qu'un choix, celui
d'enregistrer le classeur, sinon il ne peut pas le fermer. Il ne peut pas
annuler non plus, c'est: oui, alors j'enregistre ou c'est non: alors je ne
sors pas du classeur. C'est assez hard, je sais.
zOrg2netMerci zOrg2net
C'est effectivement une bonne solution. Cela veut dire que s'ils décident de
fermer le document ils ne pourront pas faire machine arrière, le document
sera forcément fermer en enregistrant ou pas. Ca ne me satisfait que
moyenement.
Je vais parler de ma façon de travailler, j'enregistre très souvent mon
travail, donc à la fermeture si j'ai le message me demandant d'enregistrer ou
non j'ai un doute, dans ce cas j'aurais tendance à faire annuler pour
revérifier avant de fermer... et la ca ne serait pas possible.
LaurentP.S. Tu peux bien sûr coller tes codes sous le Case 6
zOrg2netBonjour Laurent,
Peut-être qu'en obligeant l'utilisateur à enregistrer avant de sortir, cela
serait une solution ?
Dans ce cas, dans ThisWorkBook taper ce petit code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Select Case MsgBox("Voulez-Vous valider ce doc ?", 4)
Case 6 'Si on clique sur Oui
ActiveWorkbook.Save
Case 7 'Si on clique sur Non
Cancel = True
End Select
End Sub
zOrg2netBonjour,
C'est déjà ce que je fait.
Mon problème est autre, pour utiliser les olmail, il faut installer les
références Outlook en VBA, donc à l'ouverture je choisis la librairie selon
la version d'Outlook :
Private Sub Workbook_Open()
'Installe la librairie Outlook pour gérer les envois de mail
'Installer la référence à la bibliothèque VBA Outlook
On Error Resume Next
ThisWorkbook.VBProject.References.Remove xObject
'Office 97
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL8.OLB")
'Office 2000
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL9.OLB")
'Office XP
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOfficeMSOUTL10.OLB")
'Office 2003
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice11MSOUTL.OLB")
'Office 2007
ThisWorkbook.VBProject.References.AddFromFile ("C:Program
FilesMicrosoft OfficeOffice12MSOUTL.OLB")
'Si l'erreur est de type 1004, il faut modifier les paramètres de
sécurité d'Excel
If Err = 1004 Then
Msg = MsgBox("La librairie 'Outlook' n'est pas installée." & Chr(10)
& Chr(10) & "L'envoi de mail ne fonctionnera pas.", vbExclamation, "Erreur
Librairie Outlook")
End If
On Error GoTo 0
End Sub
Si la librairie Outlook 2003 est installé sur le document et qu'un autre
utilisateur ouvre le document alors qu'il a un Outlook2000, les macros ne
fonctionnent plus et dans "reférence" la librairie Outlook 11 est notée comme
manquante.
Pour cela à la fermeture je désinstalle la référence :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Désinstalle la référence à la bibliothèque VBA Outlook si changement de
version à la réouverture
On Error Resume Next
Dim xObject
Set xObject = ThisWorkbook.VBProject.References.Item("Outlook")
ThisWorkbook.VBProject.References.Remove xObject
End Sub
Mon problème est que si l'utilisateur clique sur fermer par erreur et qu'au
moment d'enregistrer il fait "annuler" pour ne pas fermer le docuement, la
référence à la librairie se trouve enlever et donc mes macros ne
fonctionnent plus.
Je ne sais pas si je suis assez clair
LaurentBonjour,
Pour tes objects initialement définis, il suffit de les vider ...
Set OutMail = Nothing
Set OutApp = Nothing
A +