Bonjour,
J'ai eu une désagréable surprise. J'explique la situation :
1) J'ai géré l'événement d'activation d'une des feuilles de mon classeur actif (la n°5) :
Où IsFileOpen() retourne vrai si le fichier passé en paramètre est déjà ouvert.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Worksheet_Activate() Dim Current_File As String Current_File = ActiveWorkbook.Name Dim file As String file = ThisWorkbook.GetStatusFile() If ThisWorkbook.IsFileOpen(file) Then Else Workbooks.Open (file) Workbooks(Current_File).Activate End If End Sub
Indépendamment ça marche très bien : ouverture du fichier s'il n'est pas déjà ouvert puis retour sur le classeur initial.
2) J'ai créé une macro qui insère une ligne dans plusieurs feuilles de mon classeur actif :
Le problème intervient quand on arrive sur la ligne
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 Sub InsererLigne() Dim NumRow As Long, LastNumRow As Long Dim InitSheet As String NumRow = ActiveCell.Row ' line number InitSheet = ActiveSheet.Name ' Name of sheet were we are on beginning '***** Feuille 1 Sheets("Feuil1").Activate 'On insère la ligne sélectionnée Rows(NumRow).Select Selection.Insert Shift:=xlDown [...] '***** Feuille 5 Sheets("Feuil5").Activate 'On insère la ligne sélectionnée Rows(NumRow).Select Selection.Copy Selection.Insert Shift:=xlDown '***** On revient sur la feuille initiale Sheets(InitSheet).Activate End Subet que le fichier n'est pas déjà ouvert :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sheets("Feuil5").ActivateOn rentre alors dans le code de la méthode Worksheet_Activate placée plus haut et en fait, celle-ci s'arrête au niveau du
Code : Sélectionner tout - Visualiser dans une fenêtre à part ThisWorkbook.IsFileOpen(file) = falseQuelqu'un peut-il me dire pourquoi et comment contourner ce problème, s'il vous plaît? Je ne comprends pas ce qui bloque...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Workbooks.Open (file)
Merci d'avance.
Partager