Bonne ouverture mais RunAutomacros non exécutée
Bonjour mondev, Bonjour le Forum
Après recherche et contact sur le Forum, j’ai obtenu une piste
Rappel du problème : ouvrir le classeur en écriture si c’est moi qui l’utilise, sinon ouverure en lecture seule
Le classeur utilisé : ClassPrinc.xls
Le classeur annexe : Annexe.xls
Sur ClassPrinc.xls
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| Private Sub Workbook_Open()
Dim ClassAnnexe As String
Dim ClassAnnexe1 As String
Dim Classeur As Workbook
Dim Nb as Integer
ClassAnnexe = "Chemin\Annexe.xls"
'Chemin = Répertoire où se trouve le fichier, changé ici pour cause de confidentialité
ClassAnnexe1 = "Annexe.xls"
Nb = 0
For Each Classeur In Workbooks
If Classeur.Name = "Annexe.xls" Then
Classeur.Close (False)
Nb = 1
Exit For
End If
Next Classeur
If Nb = 0 Then
With Application
.Workbooks.Open filename:=ClassAnnexe
.Workbooks(ClassAnnexe1).RunAutoMacros xlAutoOpen
End With
End If
End Sub |
Sur Annexe.xls
Code:
1 2 3 4 5 6 7 8 9 10 11
| Option Explicit
Public NomCl As String
Public NomCl2 As String
Private Sub Workbook_Open()
NomCl = "Chemin\ClassPrinc.xls"
Chemin = Répertoire où se trouve le fichier
NomCl2 = "ClassPrinc.xls"
Application.Run ("ouvre_ClassPrinc")
End Sub |
Avec
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Public Sub ouvre_ClassPrinc ()
NomCl = "Chemin\ClassPrinc.xls"
'Chemin = Répertoire où se trouve le fichier, changé ici pour cause de confidentialité
NomCl2 = "ClassPrinc.xls"
Application.DisplayAlerts = False
If Application.UserName = "MarcelG" Then
Application.Workbooks.Open Filename:=NomCl, ReadOnly:=False
Else
Application.Workbooks.Open Filename:=NomCl, ReadOnly:=True
End If
Application.Workbooks(NomCl2).RunAutoMacros xlAutoOpen
End Sub |
Seule remarque : la dernière instruction du code
Code:
Application.Workbooks(NomCl2).RunAutoMacros xlAutoOpen
est inefficace. Autrement dit, la seconde ouverture du classeur ClassPrinc.xls ne s’accompagne pas de la fermeture de Annexe.xls
C’était l’un de tes soucis, je crois.
Cette réserve mise à part, le processus fonctionne.
Si tu vois un ajout ou une correction…
Merci
Marcel.