Protéger et Deprotéger une feuille excel

Contenu du snippet

' ** Référence : Microsoft Excel 11.0 Library Objects ou équivalent
Sub SheetProtect(ByVal sBookAProteger As String, ByVal sFeuilleAProteger As String, ByVal vPassword As Object) 
If My.Computer.FileSystem.FileExists(sBookAProteger) Then
Dim xlApp As Microsoft.Office.Interop.Excel.Application 
Dim xlBook As Microsoft.Office.Interop.Excel.Workbook 
Dim i As Integer

xlApp = CreateObject("Excel.Application") 
xlBook = xlApp.Workbooks.Open(sBookAProteger)
For i = 1 To xlBook.Sheets.Count 
If xlBook.Sheets(i).Name = sFeuilleAProteger Then

xlBook.Activate()

xlBook.Sheets(sFeuilleAProteger).Select()

xlBook.Worksheets(sFeuilleAProteger).Protect(vPassword)

Exit For

ElseIf i = xlBook.Sheets.Count Then
MsgBox("La feuille à protéger n'existe pas!", vbCritical) 
End If
Next ixlBook.Close(True) 
xlApp.Quit()

xlBook = Nothing

xlApp = Nothing

Else
MsgBox("Le fichier n'existe pas, vérifier le chemin !", vbCritical) 
End If

End Sub
Sub SheetUnprotect(ByVal sBookADeproteger As String, ByVal sFeuilleADeproteger As String, ByVal vPassword As Object) 
If My.Computer.FileSystem.FileExists(sBookADeproteger) Then
Dim xlApp As Microsoft.Office.Interop.Excel.Application 
Dim xlBook As Microsoft.Office.Interop.Excel.Workbook 
Dim i As Integer

xlApp = CreateObject("Excel.Application") 
xlBook = xlApp.Workbooks.Open(sBookADeproteger)
For i = 1 To xlBook.Sheets.Count 
If xlBook.Sheets(i).Name = sFeuilleADeproteger Then

xlBook.Activate()

xlBook.Sheets(sFeuilleADeproteger).Select()

xlBook.Worksheets(sFeuilleADeproteger).Unprotect(vPassword)

Exit For

ElseIf i = xlBook.Sheets.Count Then
MsgBox("La feuille à déprotéger n'existe pas!", vbCritical) 
End If
Next ixlBook.Close(True) 
xlApp.Quit()

xlBook = Nothing

xlApp = Nothing

Else
MsgBox("Le fichier n'existe pas, vérifier le chemin !", vbCritical) 
End If

End Sub

'Exemple d'utilisation
Private Sub Button1__Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
'Protéger
Call SheetProtect("C:\Classeur1.xls", "Feuil2", 1206) 
'Déprotéger
Call SheetUnprotect("C:\Classeur1.xls", "Feuil2", 1206) 
End Sub


Compatibilité : VB 2005, VB.NET 1.x

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.