VBA - Forcer ouverture d un document word en mode lecture seule
helpvb
Messages postés32Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention22 avril 2009
-
23 févr. 2007 à 23:22
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
24 févr. 2007 à 00:42
Bonjour,
Je cherche un moyen simple (toujours depuis du code vba executé depuis
Excel) de ne pas afficher la fenetre office qui est proposee a l
utilisateur lorsque je tente d ouvrir un document word deja ouvert
(fenetre ou l utilisateur doit repondre au radio bouton : Ouvrir en
lecture seule, Etre notifie quand il se libere,...)
Je cherche donc l instruction vba qui permet d ouvrir le fichier word en forçant le mode à lecture seule sans demander le choix a l utilisateur
Merci d avance
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 23 févr. 2007 à 23:51
Salut,
je ne sais pas si cette instruction fonctionne pour l'ouverture d'un document depuis un tableur, mais c'est possible.
Je regarde. Sinon, il faudra jouer avec GetObject.
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 24 févr. 2007 à 00:00
Non, ça ne fonctionne pas.Que ce soit Application.DisplayAlerts <gras>False, wordApp.DisplayAlerts</gras> wdAlertsNone , ou les deux, j'ai quand même la demande depuis Word sur l'ouverture du fichier en lecture seule.
Je vois donc pour GetObject
@++
<hr width ="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
helpvb
Messages postés32Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention22 avril 2009 24 févr. 2007 à 00:19
merci d essayer :-)
Par contre en supposant que vous arriviez a me filer la bonne instruction, il prendrait quoi comme option par defaut (lecture seule, notification,..)
Merci encore et d avance :-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 févr. 2007 à 00:20
De quelle façon procèdes-tu pour ouvrir le document Word ?
Je n'utilise jamais Word, mais pour ouvrir un fichier Excel (à partir d'un autre), il y a un paramètre dans la fonction Workbooks.Open pour spécifier en lecture seule... Est-ce que c'est applicable dans ton cas ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 24 févr. 2007 à 00:40
Bon voici comment faire.
Pense à changer la constante MyDoc. C'est tout ce que tu as à faire :
Private Const OF_SHARE_EXCLUSIVE = &H10
Private Const OF_SHARE_DENY_READ = &H30
Public Const MyDoc As String = "C:\Documents and Settings\pcdex\Bureau\Nouveau.doc"
Private Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
Private Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long
Public Sub TestFile(FileToOpen As String)
Dim wdApp As Word.Application, wdDoc As Word.Document, xlSheet As Worksheet
Dim hFile As Long
hFile = -1
hFile = lopen(FileToOpen, OF_SHARE_EXCLUSIVE)
If hFile <> -1 Then 'pas ouvert
lclose (hFile)
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Open(MyDoc)
ElseIf (hFile = -1) And (Err.LastDllError = 32) Then 'déjà ouvert
lclose (hFile)
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Open(MyDoc, , True)