Verrouiller des cellules à l'ouverture du classeur
Résolu
Caloow
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Caloow Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Caloow Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
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
- Formule excel pour additionner plusieurs cellules - Guide
- Comment verrouiller son whatsapp - Guide
- Page d'ouverture google - Guide
- Détection de l'ouverture du clapet de mon étui samsung - Forum iPhone
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.