Bonjour,

Je suis en train de faire un petit programme et j'ai un souci avec l'utilisation de Run. J'ai 2 classeurs : ClasseurA et ClasseurB. Depuis ClasseurA, j'appelle la procédure de cette manière :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Application.Run Workbooks(ClasseurB.Name) & "!EraseOldBook", ClasseurA.Path, ClasseurA.Name
Le code dans le ClasseurB est le suivant:
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
 
Public Sub EraseOldBook(ByRef path As String, ByRef name As String)
 
    Dim fullPath As String: fullPath = path & Application.PathSeparator & name
 
    Workbooks(name).Close true
 
    If TestIfFileExist(fullPath) Then ' Petite fonction qui fait : len(dir(fullPath)) > 0
 
        'Kill fullPath
 
    End If
 
    MsgBox "fin"
 
End Sub
Le but de ma manoeuvre est de supprimer ClasseurA depuis ClasseurB. Le MsgBox "fin" est là uniquement pour les tests.

Mon problème est qu'a partir du moment où j'ai appellé Workbooks(name).Close, l'exécution du code s'arrête et MsgBox "fin" n'apparait jamais alors que mon ClasseurB reste ouvert. Etant donné que je suis dans ClasseurB je ne comprends pas pourquoi l'exécution du code s'arrête après la fermeture de ClasseurA. Je dois préciser que le ClasseurA est une copie du ClasseurB dont j'ai au préalable fait une sauvagarde avec Thisworkbook.SaveAs (ça a peut-être son importance).

Quelqu'un pourrait m'éclairer svp ?

Je vous remercie

Romain