Protection de document Word depuis Visual Studio 2010

vbjpc Messages postés 7 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 3 avril 2012 - 3 avril 2012 à 12:49
vbjpc Messages postés 7 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 3 avril 2012 - 3 avril 2012 à 17:55
Bonjour,

Je développe une application qui interface avec Word et Excel. Après avoir créer un document Word (depuis Visual Studio 2010) je le protège afin que les utilisateurs ne puissent pas le modifier, c'est à dire qu'une fois ouvert il ne peuvent que lire sans pouvoir modifier. Par contre, je voudrais pourvoir autoriser certains utilisateur à apporter des modifications.

Voici mon code

Private Sub ButtonTestDivers_Click(sender As Object, e As System.EventArgs) Handles ButtonTestDivers.Click
 
        Dim WordApp As Microsoft.Office.Interop.Word.Application
        Dim WordDoc As Microsoft.Office.Interop.Word.Document
        Dim WordSection As Microsoft.Office.Interop.Word.Section
        Dim WordRange As Microsoft.Office.Interop.Word.Range
 
 
 
        WordApp = CType(CreateObject("Word.Application"), Microsoft.Office.Interop.Word.Application)
        WordApp.Visible = True
        WordDoc = WordApp.Documents.Open("P:\Compta\_Essais.docx")
        WordSection = WordApp.ActiveDocument.Sections(1)
        WordRange = WordSection.Headers(Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range
        WordRange.Delete()
        WordApp.ActiveDocument.Protect(Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyReading, False, "xxxxx", False, False)
 
 
 
    End Sub


La dernière ligne protège le document. Que faut-il ajouter pour permettre à certains utilisateurs de modifier ?

En VBA Word j'avais ceci qui me permettait de le faire :

Sub Macro1
    Selection.Editors.Add "serveur\util1"
    Selection.Editors.Add "serveur\util2"
    ActiveDocument.Protect Password:="xxxxx", NoReset:=False, Type:=wdAlloOnlyReading, UseIRM:=False, EnforceStyleLock:=False

end sub


Merci d'avance si vous avez une solution

1 réponse

vbjpc Messages postés 7 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 3 avril 2012
3 avril 2012 à 17:55
J'ai trouvé une solution, pas forcément la meilleure :

        If WordApp.ActiveDocument.ProtectionType = Microsoft.Office.Interop.Word.WdProtectionType.wdNoProtection Then
            WordApp.ActiveDocument.Protect(Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyReading, False, "gdsmi", False, False)
        End If

        WordRange = WordApp.ActiveDocument.Sections(1).Headers(Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range
        WordRange.Editors.Add("studer\jpc")
        WordRange = WordApp.ActiveDocument.Sections(1).Footers(Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range
        WordRange.Editors.Add("studer\jpc")
        WordRange = WordApp.ActiveDocument.Range
        WordRange.Editors.Add("studer\jpc")


L'idéal serait de pouvoir donner les droits à l'utilisateur pour tout le document en une seule opération.

Si vous en trouvez une, je suis preneur, merci
0
Rejoignez-nous