Bonjour a tous,
Je souhaiterai ouvrir le classeur et lancer une macro TOTO si le classeur n'est pas ouvert (OK pour ce point).
Et uniquement lancer la macro TOTO si le classeur est déjà ouvert (NON OK).
Voila ce que j'ai actuellement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 If WorkbookOpen("Tableau de suivi.xlsm") Then 'Si oui on lance la fonction InsertRow Workbooks("Tableau de suivi.xlsm").Application.Run "TOTO" 'Si non on l'ouvre si le fichier cible est choisi Else 'TRAITMENT End IfLa fonction WorkbookOpen ne voit pas mon classeur ouvert si je l'ai lancer via la macro suivante mais vois le classeur si je l'ouvre manuellement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Function WorkbookOpen(Name As String) As Boolean WorkbookOpen = False For Each work In Workbooks If work.Name = Name Then WorkbookOpen = True Exit For End If Next work End Function
Merci a tous,
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 Set AppExcel = New Excel.Application 'test si le classeur est déjà ouvert If WorkbookOpen("Tableau de suivi.xlsm") Then 'Si oui on lance la fonction InsertRow Workbooks("Tableau de suivi.xlsm").Application.Run "TOTO" 'Si non on l'ouvre si le fichier cible est choisi Else If FileExists(Target) Then AppExcel.Visible = True AppExcel.Workbooks.Open Target AppExcel.Run "InsertRow", collectRow 'Set AppExcel = Nothing End If End If
Bastien
Partager