Bonjour
Toujours sur mon document, pour ceux qui m'ont déjà aidé, je me retrouve désormais face à l'étape cruciale de protection du document pour éviter que certains ne viennent mettre leur mimines là ou il faut pas.
Plus concrètement, il s'agit d'un questionnaire exploitant des listes déroulantes, de la manière suivante (voir Pièce Jointe pour mieux cerner la chose) :
- Clic liste déroulante
- Sélection de l'un des items
- L'item est alors enregistré dans une case transitoire à droite de la liste déroulante
- Le souhait étant d'afficher la réponse saisie au bon endroit, en dessous de la liste, une simple formule permet de copier la cellule précédente au bon endroit...
Pas évident à expliquer mais c'est tout à fait simple.
De fait, si l'utilisateur se trompe et saisi le mauvais item, il peut avoir le réflexe de supprimer la réponse apparue avec le clavier : touche supr. Sauf que du coup, il supprime la valeur mais également la formule... Et ça casse tout xD
Alors hop, protection des cellules ! Moui, mais du coup la protection empêche à la formule d'écrire dans la cellule. Coincé. A force d'essai j'ai pu voir que la protection n'entrave pas les écriture provenant des macros. L'idéal eut alors été que la macro gère le clic dans la liste déroulante pour l'affecter au bon endroit directement, mais ça ne s'est pas fait comme ça, tant pis, j'imagine que mon prédécesseur n'a pas fait tout un jeu de case transitoire pour le plaisir
Donc me voilà. Existe-t-il un moyen de protéger des cellules des manips de l'utilisateur, tout en permettant d'y écrire ? J'ai lu à plusieurs reprises un morceau de code :
Mais je ne parviens pas à m'en servir correctement. L'idée serait manifestement de priver l'utilisateur de toute action... mais seulement lui. La feuille elle continue d'agir tranquillou.
Si vous avez des pistes, je suis preneur et vous remercie d'avance !
PJ : Le fichier Excel "en situation", avec pour objectif de verrouiller les cases C46 et F46:F49... Pour toutes les questions, donc par pas de 10 lignes :s
Toujours sur mon document, pour ceux qui m'ont déjà aidé, je me retrouve désormais face à l'étape cruciale de protection du document pour éviter que certains ne viennent mettre leur mimines là ou il faut pas.
Plus concrètement, il s'agit d'un questionnaire exploitant des listes déroulantes, de la manière suivante (voir Pièce Jointe pour mieux cerner la chose) :
- Clic liste déroulante
- Sélection de l'un des items
- L'item est alors enregistré dans une case transitoire à droite de la liste déroulante
- Le souhait étant d'afficher la réponse saisie au bon endroit, en dessous de la liste, une simple formule permet de copier la cellule précédente au bon endroit...
Pas évident à expliquer mais c'est tout à fait simple.
De fait, si l'utilisateur se trompe et saisi le mauvais item, il peut avoir le réflexe de supprimer la réponse apparue avec le clavier : touche supr. Sauf que du coup, il supprime la valeur mais également la formule... Et ça casse tout xD
Alors hop, protection des cellules ! Moui, mais du coup la protection empêche à la formule d'écrire dans la cellule. Coincé. A force d'essai j'ai pu voir que la protection n'entrave pas les écriture provenant des macros. L'idéal eut alors été que la macro gère le clic dans la liste déroulante pour l'affecter au bon endroit directement, mais ça ne s'est pas fait comme ça, tant pis, j'imagine que mon prédécesseur n'a pas fait tout un jeu de case transitoire pour le plaisir
Donc me voilà. Existe-t-il un moyen de protéger des cellules des manips de l'utilisateur, tout en permettant d'y écrire ? J'ai lu à plusieurs reprises un morceau de code :
Code:
Private Sub Workbook_Open()
Sheets("Questionnaire").Protect "ergo", UserInterfaceOnly:=True
End Sub
Mais je ne parviens pas à m'en servir correctement. L'idée serait manifestement de priver l'utilisateur de toute action... mais seulement lui. La feuille elle continue d'agir tranquillou.
Si vous avez des pistes, je suis preneur et vous remercie d'avance !
PJ : Le fichier Excel "en situation", avec pour objectif de verrouiller les cases C46 et F46:F49... Pour toutes les questions, donc par pas de 10 lignes :s