Bonjour,

Depuis une macro du logiciel Catia je tente d'ouvrir un classeur excel choisi dans une combobox après clic sur un CommandButton.

Ce code fonctionne dans une autre macro que j'ai récupérée mais pas dans la mienne.

Le code de l'ouverture de fichier est :
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 ouverture_fichier()
 
    Dim i As Integer
    Dim deja_ouvert As Boolean
    Dim nom_fichier As String
 
    On Error GoTo line999
    'récupère le nom du fichier sans le ".xls" dans la comobox du formulaire
    nom_fichier = VisSansFin_pilotage.ComboBox_Fichier_Archive.text
    'On ouvre le fichier en vérifiant qu'il n'est pas déjà ouvert
    deja_ouvert = False
 
    MsgBox Workbooks.Count
 
    For i = 1 To Workbooks.Count
        If appxls.Workbooks.Item(i).Name = nom_fichier & ".xls" Then
            deja_ouvert = True
            appxls.Workbooks.Item(i).Activate
            MsgBox "Feuille activée"
        End If
    Next
    If deja_ouvert = False Then
       ' EN début de code il y a : Dim appxls As New Excel.Application
       appxls.Workbooks.Open chemin_acces, , True 
       MsgBox "Ouverture du classeur"
    End If
 
    fichier_ouvert = True
    Exit Sub
 
line999:
    MsgBox "ouverture du fichier impossible"
    fichier_ouvert = False
End Sub
Le code de mon bouton est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Private Sub CommandButton_Visualiser_Click()
 
    Call Recup_xls.ouverture_fichier
 
End Sub
J'ai essayé de lancer l'ouverture d'Excel après l'exécution de la procédure, puisque j'ai remarqué qu'en ouvrant un fichier excel à la main après l'exécution d' ouverture_fichier les fichiers du "monde parallèle" apparaissaient, mais en vain:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Code : Sélectionner tout - Visualiser dans une fenêtre à part
12345678
Private Sub CommandButton_Visualiser_Click()
 
    Call Recup_xls.ouverture_fichier
    Dim MyAppID
    MyAppID = Shell("C:\Program Files\Microsoft Office\Office10\EXCEL.EXE", 1)
    AppActivate MyAppID    ' Activate Microsoft Excel.
 
End Sub
La macro ajoute un autre EXCEL.EXE dans le gestionnaire des tâches que celui qui est lancé quand j'ouvre un fichier à la main.

Si je vire le processus EXCEL.EXE qui correspond à l'ouverture de mon fichier du gestionnaire des tâches, quand je relance la macro, l'ouverture plante mais le lancement d'excel avec le classeur vierge se fait...

Merci d'exorciser mon code