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 :
Le code dans le ClasseurB est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Application.Run Workbooks(ClasseurB.Name) & "!EraseOldBook", ClasseurA.Path, ClasseurA.Name
Le but de ma manoeuvre est de supprimer ClasseurA depuis ClasseurB. Le MsgBox "fin" est là uniquement pour les tests.
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
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
Partager