Verifier si un fichier PPT est deja ouvert ou non

Résolu
MP -  
 Mp -
Bonjour,

Je souhaite verifier, avant de derouler mon programme VBA qui permet d afficher une image depuis Excel dans une presentation PPT, si la presentation en question n'est pas deja ouverte afin deviter les bugs :
- si je relance mon programme je veux aue les modifications soient effectuees sur le meme PPT et ne m'ouvre pas une seconde fois le fichier

Pouriez vous m'aider ?

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Comme ceci:

    Option Explicit
    Private Sub CommandButton1_Click()
    If FichierEstOuvert("C:\Users\LePivert\Documents\Diaporamas\monfichier.ppt") Then 'a adapter le chemin
      MsgBox "ouvert"
    Else
       MsgBox "fermer"
       End If
    End Sub
    Function FichierEstOuvert(ByRef FichierTeste As String) As Boolean
        Dim Fichier As Long
        On Error GoTo Erreur
        Fichier = FreeFile
        Open FichierTeste For Input Lock Read As #Fichier
        Close #Fichier
        FichierEstOuvert = False
        Exit Function
    Erreur:
        FichierEstOuvert = True
    End Function
    
    

    0
    1. MP
       
      Merci cs_Le Pivert,

      Cette fonction marche parfaitement :)
      Je debute en VBA, cependant je tente tant bien que mal de comprendre le code de celle-ci si tu peux m'aider un peu ... Comment marche cette partie par exemple:
      On Error GoTo Erreur
      Fichier = FreeFile
      Open FichierTeste For Input Lock Read As #Fichier
      Close #Fichier
      FichierEstOuvert = False

      J'ai une petite question a te poser (completement differente de la derniere) Pour quelle raison parfois les MsgBox s affichent avant la fin de l'action ? Je m'explique, par exemple dans mon cas je remets a jour des donnees a partir d'un autre fichier Excel et le message "Update completed" ne s affiche pas comme je voudrais, c-a-d tout a la fin une fois les donnees chargees.

      Sub update()
      Sheets("Data").Select
      ActiveWorkbook.RefreshAll
      MsgBox "Update completed !"
      End Sub

      Peux-tu m'aider a comprendre aussi ?
      Cordialment,
      MP
      0