XL 2013 Protection de cellule entrave le bon fonctionnement : bloquer seulement l'interface ?

Dakitess

XLDnaute Nouveau
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 :

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
 

Pièces jointes

  • Questionnaire Forum VNEW macros supr.xlsm
    54.2 KB · Affichages: 50
  • Questionnaire Forum VNEW macros supr.xlsm
    54.2 KB · Affichages: 46

Papou-net

XLDnaute Barbatruc
Re : Protection de cellule entrave le bon fonctionnement : bloquer seulement l'interf

Bonsoir Dakitess,

Vois si la solution proposée en PJ te convient.

Cordialement.
 

Pièces jointes

  • Copie de Questionnaire Forum VNEW macros supr.xlsm
    51 KB · Affichages: 51

Dakitess

XLDnaute Nouveau
Re : Protection de cellule entrave le bon fonctionnement : bloquer seulement l'interf

Bonjour,

Merci de t'être penché sur mon problème. Je viens d'ouvrir la PJ et à priori cela ne fonctionne pas, lorsque je clique sur ma liste déroulante et saisi une réponse, Excel me renvoi une fenêtre : "La cellule ou le graphique que vous essayez de modifier [...]"

Donc un utilisateur ne serait pas en mesure d'exploiter le questionnaire. Peut être ai-je loupé quelque chose ?

Je pensais peut être à une méthode un peu... "sale", comme l'apposition d'un rectangle transparent au dessus des cases à protéger : il est certainement possible de le rendre non cliquable via la protection, et en le mettant en premier plan je protège les cellules derrières sans les impacter... C'est de la bidouille haha, mais une telle chose pourrait elle fonctionner ?

Ou toute autre méthode dérivée après tout !
 

Papou-net

XLDnaute Barbatruc
Re : Protection de cellule entrave le bon fonctionnement : bloquer seulement l'interf

Bonjour Dakitess,

Chez moi, si je clique sur une liste et que je sélectionne une valeur, elle se reporte bien dans la cellule rouge du dessous. Par contre, si je cliquais sur un des boutons "Effacer les réponses", j'obtenais effectivement un message d'erreur. Je n'avais pas traité ce détail, voilà qui est corrigé.

Par contre, je n'ai peut-être pas saisi certaines subtilités de ton programme. Ou alors c'est un problème de version entre XL2013 (toi) et XL2010 (moi)?

Je joins une copie modifiée pour test.

A +

Cordialement.
 

Pièces jointes

  • Copie 01 de Questionnaire Forum VNEW macros supr.xlsm
    53.7 KB · Affichages: 35

Dakitess

XLDnaute Nouveau
Re : Protection de cellule entrave le bon fonctionnement : bloquer seulement l'interf

C'est étonnant, toujours pareil, je ne peux sélectionner aucune des listes déroulantes, ou plutôt ces dernières s'ouvrent bien, la liste apparait, mais un clic sur l'un des items m'amène à la fenêtre en question m'informant que les cellules / feuillles / classeurs sont protégées et que je ne peux agir.

Je note au passage qu'à l'ouverture du document j'ai un message :

"Pour l'instant, nous ne parvenons pas à mettre à jour certaines liaisons de votre classeur [...]"

Le choix m'est offert de "continuer" ou "modifier les liaisons". Là je viens de cliquer sur ce dernier et je vois que deux "sources" sont problématiques, mais je crois que cela vient juste du fait que je nettoyé le fichier pour vous l'envoyer et qu'il contient quelques liens vers des macros d'autres versions d'Excel...

Bref, certainement sans lien, et probablement un message que vous avez aussi à l'ouverture.
 
Dernière modification par un modérateur:

Papou-net

XLDnaute Barbatruc
Re : Protection de cellule entrave le bon fonctionnement : bloquer seulement l'interf

RE:

Effectivement, j'ai ce message mais moi je me sers de la croix de droite pour le fermer au lieu de cliquer sur une des deux options.

Il n'est pas impossible qu'il y ait un lien avec ton problème.

A +

Cordialement.
 

Dakitess

XLDnaute Nouveau
Re : Protection de cellule entrave le bon fonctionnement : bloquer seulement l'interf

C'était cela ! La croix me permet effectivement de pouvoir entrer une réponse dans la colonne C :)

En revanche chaque action requiert 1 demi-seconde à s'effectuer, cela vient probablement du mode de fonctionnement de la macro, dans la feuille directement.

Je vais voir à adapter cela pour les cases en colonnes F :) Est-ce que je peux sereinement travailler en boucle FOR pour parcourir toutes les cases C45 - 56 - 66 - ... (pas de 10 sur la colonne C) et F46:F49 - F56:F59 - F66:F69 - ... (pas de 10 également) ?

Merci !

Edit : J'ai tenté quelque chose comme cela :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim i, a, b, c, d, e As Integer

For i = 46 To 1426 Step 10

a = i - 1
b = i
c = i + 1
d = i + 2
e = i + 3

If Not Intersect(Cells(b, 3), Target) Is Nothing Then
Me.Unprotect "ergo"
End If

If Not Intersect(Cells(b, 6), Target) Is Nothing Then
Me.Unprotect "ergo"
End If

If Not Intersect(Cells(c, 6), Target) Is Nothing Then
Me.Unprotect "ergo"
End If

If Not Intersect(Cells(d, 6), Target) Is Nothing Then
Me.Unprotect "ergo"
End If

If Not Intersect(Cells(e, 6), Target) Is Nothing Then
Me.Unprotect "ergo"
End If

Next

End Sub

Mais ça n'a pas l'air de fonctionner. Toutefois je n'ai pas d'erreur, simplement les cases restent verrouillées.

Edit2 : J'ai testé le coup du rectangle transparent, mais... Ne pas mettre de remplissage signifie que la forme ne peut être saisie que par les bords. Sous entendu, si je clique au milieu, c'est toujours la cellules qui est prise... Du coup j'en passé par une image, blanche, que et j'applique une couleur transparente. Ca marche ! En protection de la feuille, l'image transparence n'est meme pas sélectionnable, j'ai un beau rectangle de non-action. Problème, rectangle ou non je m'aperçois que la protection empêche la saisie des réponses. J'ai bien vérifié, les cases sont non verrouillées, bien sur. Du coup faut que je parametre ma protection, mais je ne sais pas comment !
 
Dernière modification par un modérateur:

Statistiques des forums

Discussions
299 841
Messages
1 979 469
Membres
206 744
dernier inscrit
Nicolas258