Ouverture powerpoint avec VB - Pb si fichier déjà ouvert

cs_merejie Messages postés 2 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 1 août 2007 - 24 juil. 2007 à 09:52
cs_merejie Messages postés 2 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 1 août 2007 - 24 juil. 2007 à 10:30
Bonjour,

Lorsque j'ouvre un powerpoint à partir d'une autre présentation, tout se passe bien, sauf si le fichier à lancer a déjà été ouvert auparavant, auquel cas j'obtiens un message d'erreur.

Voici mon code:
(...)
If OptionButton2.Value = True Then
    If ComboBox1.Value = "Schalt" Then
    'ouverture liste transmission manuelle
    Dim MyPath As String
    MyPath = Application.ActivePresentation.Path
    fName = MyPath & "\transmission\manuelle.pps"
    Presentations.Open FileName:=fName, ReadOnly:=msoFalse
    End If
(...)

Pour resituer les choses:
A partir d'une première présentation, l'utilisateur doit choisir quel type d'information qu'il recherche. Il est ensuite envoyé vers le fichier adapté.

Merci bcp pour votre aide!

3 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 juil. 2007 à 10:08
Salut,
Je pense que tu peux contourner ton problème en regardant la collection
Application.Presentations qui devrait contenir toutes les présentation déjà ouverte.

Il te suffit de parcourir cette collection en regardant le nom pour voir si elle est ouverte.

Ceci n'est pas testé mais c'est pour l'idée.

Dim PPresentation As Presentation
Dim Trouve As Boolean
   For Each PPresentation In Application.Presentations
       If PPresentation = "manuelle" Then
           Trouve = True
           Exit For
       End If
   Next

   'Si pas trouver alors tu l'ouvre
   If Not Trouve Then
       Call Application.Presentations.Open(fname, msoFalse)
   Else
   'sinon tu active la présentation
       
   End If
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
24 juil. 2007 à 10:15
Tu peux gérer l'erreur a posteriori, mais personnellement, je n'aime pas trop.

Question :
Le fichier est déjà ouvert : sur le même poste, ou s'il s'agit d'un fichier en réseau, ouvert par un autre utilisateur ?

S'il s'agit juste de contrôler sur un poste :

La collection Presentations contient le nom de tous les fichiers PowerPoint ouvert, avec une boucle, tu contrôle si ton fichier est présent, si oui, et bien, tu vois si tu le fermes pour ton traitement ou si tu sors de ton code :

Dim NomFichier as string
NomFichier = "toto"

    For i = 1 To Presentations.Count
            MsgBox Presentations.Item(i).Name
            If  Presentations.Item(i).Name = NomFichier then
                  'Ton code
            End If
    Next i

Molenn
0
cs_merejie Messages postés 2 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 1 août 2007
24 juil. 2007 à 10:30
Ok, merci à tous les 2, je vais essayer ca!
Bonne journée

Jérémie
0
Rejoignez-nous