Bonjour tout le monde

Je ne comprends pas pourquoi dans le code suivant, la ligne avec le CodeName n'affiche rien (ligne 32 dans le code ci-dessous).
Plus exactement, cette ligne n'affiche rien quand la macro est lancée automatiquement à l'ouverture du fichier.
Mais si on lance la macro "à la main", une fois le fichier ouvert, tout fonctionne comme il faut.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Sub Intervertir()
 
Dim CheminP As String 'Chemin des fichiers des postes
Dim CheminS As String 'Chemin des fichiers des salons
Dim CheminM As String 'Chemin du fichier modèle
Dim FichierM As String 'Nom du fichier modèle
Dim FichierP As String 'Nom du fichier de poste en cours
Dim WbFichierP As Workbook 'Classeur de poste en cours
Dim WbFichierM As Workbook 'Classeur du fichier modèle
Dim FeuilleS As Worksheet 'Feuille salon dans le classeur poste en cours
Dim NomLongClass As String 'Nom du classeur salon
 
Application.ScreenUpdating = False
 
CheminP = "C:\Users\Pierre Dumas\Desktop\test\Postes\"
CheminS = "C:\Users\Pierre Dumas\Desktop\test\Salons\"
CheminM = "C:\Users\Pierre Dumas\Desktop\test\Modele\"
 
FichierM = "Salon.xlsx"
 
'Ouvrir le classeur modèle de salon
Set WbFichierM = Workbooks.Open(CheminM & FichierM)
 
FichierP = Dir(CheminP & "*.xlsx")
   Set WbFichierP = Workbooks.Open(CheminP & FichierP)
   For Each FeuilleS In WbFichierP.Worksheets
      NomLongClass = "Extr" & FeuilleS.Name & ".xlsx"
      If EstDansCollection(Workbooks, NomLongClass) = False Then  'Verifier si le classeur de salon est ouvert. Si ce n'est pas le cas
         WbFichierM.SaveCopyAs CheminS & NomLongClass 'Duppliquer le classeur modèle avec le nom de ce salon
         Workbooks.Open Filename:=CheminS & NomLongClass 'Ouvrir ce nouveau classeur
      End If
      MsgBox (Workbooks(NomLongClass).Sheets("REALISE").CodeName)
 
 
 
 
      'Suite macro
      Exit For
   Next FeuilleS
 
   WbFichierP.Close
   Set WbFichierP = Nothing
 
Application.ScreenUpdating = True
End Sub
 
Private Function EstDansCollection(Coln As Object, Item As String) As Boolean
Dim Obj As Object
 
On Error Resume Next
Set Obj = Coln(Item)
EstDansCollection = Not Obj Is Nothing
 
End Function
Et voici le contenu de ThisWorkbook
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Private Sub Workbook_Open()
Call Intervertir
Application.Quit
End Sub

Je ne vois pas ce que je loupe ou réalise mal

Merci d'avance aux commentaires me mettant sur le bon chemin.

Belle après-midi à chacun

Pierre Dumas