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! 🙂