Bonjour,

J'ai un petit problème, j'ai besoin d'ouvrir un fichier par un bouton, ça j'y arrive, mais mon problème était que lorsque je clique une 2 et une 3 et... ben le fichier s'ouvre 2,3,4,... fois(et l'applic aussi).

Donc j'ai résolu ce problème et cherchant si l'applic étais déjà ouverte et ça c'est bon.

Maintenant, si l'applic est fermé, tout fonctionne a merveille, mais si l'applic est déjà ouverte, je n'arrive pas a ouvrir le fichier dans cette applic ouverte.

J'avais fait un truc avec les biblioteque activée, mais comme dans mon bureau on est 15 a travailler dessus et que l'on a pas tous la meme version exact d'excel. ça pose problème.

Si quelqu'un à une solution en sachant que mon code vba doit absolument rester dans un Sheet et non pas dans un module ou un thisworkbook.

Je vous met mon code ci-dessous

code des Boutons :
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 open_feuille_autocad_Click()
    ' OUVERTURE DU DESSIN AUTOCAD
        ThisWorkbook.Sheets("FORM").open_feuille_autocad.Caption = "*OUVRE DESSIN AUTOCAD"
        NomBouton = "open_feuille_autocad"
        OuvreFichier
End Sub
 
Private Sub open_programme_Click()
    ' OUVERTURE DU PROGRAMME
        Sheets("FORM").open_programme.Caption = "*OUVRE LE PROGRAMME"
        NomBouton = "open_programme"
        OuvreFichier
End Sub
code OuvreFichier:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Sub OuvreFichier()
    Dim NomDeCefichierExcel, NomSansExt, NomAvecNewExt, Ext
    Dim CheminRepertoire, CheminNewFichier, CheminApp, OuvreFic
 
    '******************* DEFFINITION DES DONNEES **************************
        If NomBouton = "open_feuille_autocad" Or NomBouton = "ImprimerDossier" Then
            CheminApp = "C:\Program Files\Autodesk\MDT 2006\acad.exe"
            Ext = ".DWG"
        ElseIf NomBouton = "open_programme" Then
            CheminApp = "notepad.exe"
            Ext = ".CNC"
        Else
            MsgBox ("PAS UTILISE")
            End
        End If
    '**********************************************************************
 
    ' Definition du nom de fichier
    NomDeCefichierExcel = ActiveWorkbook.Name
 
    ' Definition du nom du fichier a traiter
    NomSansExt = Left(NomDeCefichierExcel, Len(NomDeCefichierExcel) - 4)
    NomAvecNewExt = (NomSansExt & Ext)
 
    ' Chemin du fichier a traiter
    CheminRepertoire = ActiveWorkbook.Path
    CheminNewFichier = CheminRepertoire & "\" & NomAvecNewExt
    OuvreFic = (CheminApp & " " & CheminNewFichier)
 
    On Error Resume Next
    'test si applic ouverte
    Dim svc As Object, sQuery As String, Oproc
 
    Set svc = GetObject("winmgmts:root\cimv2")
    sQuery = "select * from win32_process"
 
    For Each Oproc In svc.ExecQuery(sQuery)
        Debug.Print Oproc.Name
        If UCase(Oproc.Name) = UCase(CheminApp) Then
            'MsgBox "" & c & " ouverte"
            OuvreFic = (CheminNewFichier)
            Oproc.Activate
            Exit For
        Else
        End If
    Next
    Set svc = Nothing
 
    'ouverture fichier
    Shell (OuvreFic), vbMaximizedFocus
End Sub