Ouverture powerpoint avec VB - Pb si fichier déjà ouvert
cs_merejie
Messages postés2Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 1 août 2007
-
24 juil. 2007 à 09:52
cs_merejie
Messages postés2Date d'inscriptionmardi 24 juillet 2007StatutMembreDerniè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!
A voir également:
Ouverture powerpoint avec VB - Pb si fichier déjà ouvert
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 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