Bonjour,
Je suis entrain de travailler sur un fichier pour gérer un stock. Afin d'éviter les erreurs de saisie, un stock négatif et que les operateurs supprime les formules j'ai donc décider de passer par un formulaire qui s'ouvre a l'appuie de la touche "entrée" quand on est sur une cellule. Jusque la tout vas bien. En revanche la saisie était possible sans passé par le formulaire. Pour contourner le problème j'ai commencé par simuler un Ctrl + Z avec SendKeys en revanche cette solution rentrée en confusion avec le pad numérique et le désactivait aléatoirement.
J'ai donc chercher une autre solution et j'ai trouvé ceci que j'ai mis dans un module et que j'appel depuis mes différentes feuilles :
Le problème c'est que cette solution ralenti énormément la navigation a l'aide des flèche directionnelle ... Puisque si je comprend bien celle ci ôte la protection a chaque changement de sélection. (Je l'ai aussi essayer dans une feuille dans passé par un module mais aucune différence ...)
Ma protection est configuré comme ci-dessous :
J'ai aussi besoin de pouvoir utiliser les regroupements présent dans toutes mes feuilles, que j'ai autoriser a l'aide de ce code :
Ma question est la suivante : Comment puis-je faire pour pouvoir permettre la sélection et l'utilisation des regroupements tout en verrouillant la modification manuel et surtout sans avoir de ralentissement ? Sachant que la touche "entrée" est obligatoire pour l'ouverture du formulaire en terme d'ergonomie d'utilisation ...
Par avance merci pour votre aide
Je suis entrain de travailler sur un fichier pour gérer un stock. Afin d'éviter les erreurs de saisie, un stock négatif et que les operateurs supprime les formules j'ai donc décider de passer par un formulaire qui s'ouvre a l'appuie de la touche "entrée" quand on est sur une cellule. Jusque la tout vas bien. En revanche la saisie était possible sans passé par le formulaire. Pour contourner le problème j'ai commencé par simuler un Ctrl + Z avec SendKeys en revanche cette solution rentrée en confusion avec le pad numérique et le désactivait aléatoirement.
J'ai donc chercher une autre solution et j'ai trouvé ceci que j'ai mis dans un module et que j'appel depuis mes différentes feuilles :
Code:
Sub SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim PlageStock As Range, PlageInventaire As Range
Set PlageInventaire = [A5:B300]: Set PlageStock = [K5:VJ300]
If Not Intersect(Target, PlageStock) Is Nothing Then
ActiveSheet.Protect "1", Contents:=True, userInterfaceOnly:=True
Intersect(Target, PlageStock).Select
End If
If Not Intersect(Target, PlageInventaire) Is Nothing Then
ActiveSheet.Protect "1", Contents:=True, userInterfaceOnly:=True
Intersect(Target, PlageInventaire).Select
End If
End Sub
Le problème c'est que cette solution ralenti énormément la navigation a l'aide des flèche directionnelle ... Puisque si je comprend bien celle ci ôte la protection a chaque changement de sélection. (Je l'ai aussi essayer dans une feuille dans passé par un module mais aucune différence ...)
Ma protection est configuré comme ci-dessous :
J'ai aussi besoin de pouvoir utiliser les regroupements présent dans toutes mes feuilles, que j'ai autoriser a l'aide de ce code :
Code:
Private Sub Workbook_Open()
Dim Feuille As Worksheet
For Each Feuille In ThisWorkbook.Worksheets
With Feuille
.EnableAutoFilter = True
.EnableOutlining = True
.Protect "1", Contents:=False, userInterfaceOnly:=True
End With
Next
End Sub
Ma question est la suivante : Comment puis-je faire pour pouvoir permettre la sélection et l'utilisation des regroupements tout en verrouillant la modification manuel et surtout sans avoir de ralentissement ? Sachant que la touche "entrée" est obligatoire pour l'ouverture du formulaire en terme d'ergonomie d'utilisation ...
Par avance merci pour votre aide