Verrouiller des cellules à l'ouverture du classeur
Résolu
Caloow
Messages postés
14
Statut
Membre
-
Caloow Messages postés 14 Statut Membre -
Caloow Messages postés 14 Statut Membre -
Bonjour à tous,
J'ai un petit soucis, j'essaye de verrouiller les cellules non vide d'un tableau excel (dans une feuille appelée "Enregist_Fabrication") à l'ouverture du classeur excel.
J'ai trouver quelques lignes de code,
Pour sélectionner mes cellules non vide
Ainsi que pour verrouiller ma feuille
Mais je n'arrive pas a combiner les deux.
Voici le code :
Private Sub Workbook_Open()
With Worksheets("Enregist_Fabrication")
Selection.SpecialCells(xlCellTypeConstants).Select
SelectCells.Protect Password:="monmot2passe", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowFiltering:=True
End With
End sub
Je fais donc appel à vous, si vous pouviez m'aider à résoudre ce petit problème...
Merci d'avance !
J'ai un petit soucis, j'essaye de verrouiller les cellules non vide d'un tableau excel (dans une feuille appelée "Enregist_Fabrication") à l'ouverture du classeur excel.
J'ai trouver quelques lignes de code,
Pour sélectionner mes cellules non vide
Ainsi que pour verrouiller ma feuille
Mais je n'arrive pas a combiner les deux.
Voici le code :
Private Sub Workbook_Open()
With Worksheets("Enregist_Fabrication")
Selection.SpecialCells(xlCellTypeConstants).Select
SelectCells.Protect Password:="monmot2passe", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowFiltering:=True
End With
End sub
Je fais donc appel à vous, si vous pouviez m'aider à résoudre ce petit problème...
Merci d'avance !
A voir également:
- Verrouiller des cellules à l'ouverture du classeur
- Verrouiller des cellules excel - Guide
- Comment verrouiller son whatsapp - Guide
- Page d'ouverture google - Guide
- Excel additionner plusieurs cellules - Guide
- Verrouiller clavier pc portable ✓ - Forum Clavier
6 réponses
Bonjour
Pourquoi ne pas tout simplement laisser toutes les cellules qui on du contenu verrouillées ?
(Enfin je ne comprend pas l'intérêt de verrouiller les cellules à l'ouverture du classeur. Est-ce que vous pourriez nous donner plus d'explication ?)
Pourquoi ne pas tout simplement laisser toutes les cellules qui on du contenu verrouillées ?
(Enfin je ne comprend pas l'intérêt de verrouiller les cellules à l'ouverture du classeur. Est-ce que vous pourriez nous donner plus d'explication ?)
Bonjour skk201,
Les cellules verrouiller seraient celle d'un tableau qui est mis à jour tout les jours, voire même plusieurs fois par jour. Le but est qu'à chaque ouverture ou fermeture, le fichier prenne en compte les modifications réalisées, et verrouille ainsi les nouvelles cellules.
Une fois que l'opérateur à rentrer les infos dans les cellules et qu'il ferme le fichier, il ne doit plus pouvoir modifier ces cellules. Seul la personne ayant le mot de passe pourra les modifier
Les cellules verrouiller seraient celle d'un tableau qui est mis à jour tout les jours, voire même plusieurs fois par jour. Le but est qu'à chaque ouverture ou fermeture, le fichier prenne en compte les modifications réalisées, et verrouille ainsi les nouvelles cellules.
Une fois que l'opérateur à rentrer les infos dans les cellules et qu'il ferme le fichier, il ne doit plus pouvoir modifier ces cellules. Seul la personne ayant le mot de passe pourra les modifier
Je comprend Donc a chaque "mise à jour" des données peuvent être ajoutées
L'"opérateur" c'est une personne ? un autre classeur excel ? un programe ?
L'"opérateur" c'est une personne ? un autre classeur excel ? un programe ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Je pense que cette macro doit aller
Sub Test()
With Sheets("Base")
.Select
.Unprotect
Cells.Locked = False
Selection.SpecialCells(xlCellTypeConstants).Locked = True
.Protect
End With
End Sub
a toi de mettre ton mots de passe
A+
Maurice
Je pense que cette macro doit aller
Sub Test()
With Sheets("Base")
.Select
.Unprotect
Cells.Locked = False
Selection.SpecialCells(xlCellTypeConstants).Locked = True
.Protect
End With
End Sub
a toi de mettre ton mots de passe
A+
Maurice
Je pense qu'il faut combiné nos idée :)
Comme dit Maurice, libre a toi de mettre un mot de passe ou non.
Si tu ne veux pas de mot de passe efface tout simplement le MDP après Sheets(Sh).Unprotectet Sheets(Sh).Protect
Si plus tard tu veux en mettre tu n'auras plus qu'a reajouter les MDP
Sub Verrouillage()
Application.ScreenUpdating = False
Dim MDP as string
MDP = "motdepasse" 'Changer le mot de passe au besoin
For Sh = 1 To Sheets.Count
Sheets(Sh).Unprotect MPD
For C = 1 To Sheets(Sh).Cells.SpecialCells(xlCellTypeLastCell).Column
For L = 1 To Sheets(Sh).Cells.SpecialCells(xlCellTypeLastCell).Row
If Sheets(Sh).Cells(L, C).Value = "" Then
Sheets(Sh).Cells(L, C).Locked = False
Else
Sheets(Sh).Cells(L, C).Locked = True
End If
Next
Next
Sheets(Sh).Protect MDP
Next
End Sub
Comme dit Maurice, libre a toi de mettre un mot de passe ou non.
Si tu ne veux pas de mot de passe efface tout simplement le MDP après Sheets(Sh).Unprotectet Sheets(Sh).Protect
Si plus tard tu veux en mettre tu n'auras plus qu'a reajouter les MDP
Le problème avec ton idée c'est que si le tableau est grand alors ça risque de faire ralentir l'ouverture du fichier.
Le plus simple serait une macro qui verrouille les cellules comme celle-ci :
Mais qu'elle soit activée manuellement par la personne qui change les données dedans
(si jamais cette macro verrouille les cellules contenant un objet et déverouilles celles qui sont égale a "")
EDIT
J'ai améliorer le code, maintenant s'applique directement sur toutes les feuilles du classeur.
Le plus simple serait une macro qui verrouille les cellules comme celle-ci :
Sub Verrouillage()
Application.ScreenUpdating = False
For Sh = 1 To Sheets.Count
For C = 1 To Sheets(Sh).Cells.SpecialCells(xlCellTypeLastCell).Column
For L = 1 To Sheets(Sh).Cells.SpecialCells(xlCellTypeLastCell).Row
If Sheets(Sh).Cells(L, C).Value = "" Then
Sheets(Sh).Cells(L, C).Locked = False
Else
Sheets(Sh).Cells(L, C).Locked = True
End If
Next
Next
Next
End Sub
Mais qu'elle soit activée manuellement par la personne qui change les données dedans
(si jamais cette macro verrouille les cellules contenant un objet et déverouilles celles qui sont égale a "")
EDIT
J'ai améliorer le code, maintenant s'applique directement sur toutes les feuilles du classeur.