Bonjour,
J'ai posté un message en rapport avec mon problème, mais la discussion date de 2009, je ne pense pas pouvoir avoir une réponse, de ce fait, je tente ma chance ici en ouvrant une nouvelle discussion,
Je suis sous excel 2003, Pour le boulot, j'ai crée un fichier à remplir par des utilisateurs, le principe est qu'une fois les cellules qu'ils souhaitent remplir sont renseignées, ils enregistrent leurs modifications. La fermeture engendre le verrouilalge des cellules renseignées. Il faut savoir que le fichier que j'ai n'est pas un formulaire, et il contient des cellules fusionnées tout comme il contient des cellules normales. Il contient également une liste déroulante conditionnelle. Mon problème c'est que le vba que j'ai crée ne me verrouille que certaines cellules et non pas toutes. Voici le code :
Je n'arrive pas à trouver l'erreur dans mon fichier, quelqu'un pourrait-il m'aider, de plus mon but est de partager le fichier et je sais que la protection des feuilles est imcompatibles avec le partage, donc si quelqu'un a une autre idée de comment je pourrais faire?
Je vous remercie d'avoir accordé quelques instants rien qu'à lire déjà mon problème!
J'ai posté un message en rapport avec mon problème, mais la discussion date de 2009, je ne pense pas pouvoir avoir une réponse, de ce fait, je tente ma chance ici en ouvrant une nouvelle discussion,
Je suis sous excel 2003, Pour le boulot, j'ai crée un fichier à remplir par des utilisateurs, le principe est qu'une fois les cellules qu'ils souhaitent remplir sont renseignées, ils enregistrent leurs modifications. La fermeture engendre le verrouilalge des cellules renseignées. Il faut savoir que le fichier que j'ai n'est pas un formulaire, et il contient des cellules fusionnées tout comme il contient des cellules normales. Il contient également une liste déroulante conditionnelle. Mon problème c'est que le vba que j'ai crée ne me verrouille que certaines cellules et non pas toutes. Voici le code :
Code:
Sub WsLock(Optional Y)
Dim PWd$
PWd = "4064"
'Protége ou déprotège toutes les feuilles
Application.ScreenUpdating = False
If IsMissing(Y) Then
For i = 1 To Worksheets.Count
Worksheets(i).Protect PWd
[A1].Select
Next
Else
For i = 1 To Worksheets.Count
Worksheets(i).Unprotect PWd
[A1].Select
Next
End If
End Sub
Sub deprotege()
WsLock 0
End Sub
Sub protege()
WsLock
End Sub
Sub DeverouillerCellulesVides()
'Commence par tout vérouiller
With Sheets("Sem1")
.Unprotect "4064"
With Intersect(.UsedRange, .Range("Sem1!A1:R3000"))
.Cells.Locked = True
'On Error Resume Next
.SpecialCells(xlCellTypeBlanks).Locked = False
End With
For Each c In Sheets("Sem1").Range("A1:R3000")
If c <> "" Then
If c.MergeCells Then
c.MergeArea.Locked = True
End If
If IsEmpty(Range("B1").MergeArea) Then
Range("Sem1!B1").MergeArea.Locked = False
End If
End If
Next
.Protect "4064"
End With
end sub
Je n'arrive pas à trouver l'erreur dans mon fichier, quelqu'un pourrait-il m'aider, de plus mon but est de partager le fichier et je sais que la protection des feuilles est imcompatibles avec le partage, donc si quelqu'un a une autre idée de comment je pourrais faire?
Je vous remercie d'avoir accordé quelques instants rien qu'à lire déjà mon problème!