Protection de formulaire d'enquête et coche unique

Amy

XLDnaute Nouveau
Bonjour,

Je suis relativement novice en Excel, je n’ai pas d’expérience avec les macros.
Je dois reprendre le travail d’une collègue que je ne pourrai pas contacter pour de l’aide. Elle a créé un formulaire pour une enquête interne et y a intégré de nombreuses macros et des fonctions qui me sont inconnues. Et je dois effectuer des modifications dans le fichier.

Pour la partie technique : je suis sous Excel 2002 avec XP 2002, version pro, SP3.


Le questionnaire comprend des zones de texte et des cases à cocher. J’ai réussi à verrouiller les zones de texte (feuille entièrement protégée, protection enlevée sur les cellules dans lesquelles le texte doit être saisi, verrouillage de la feuille). J’ai essayé d’utiliser la même méthode pour les cases à cocher*, sans succès. Toutefois, « protéger » la feuille permettrait de limiter fortement les erreurs de saisie.


De plus, j’aimerai savoir s’il est techniquement possible d’empêcher physiquement le cochage de plusieurs cases (comme sur un formulaire web ou si l’on reclique dans une autre case de la même ligne, l’ancienne case cochée est décochée et la nouvelle est cochée).
Pour information, les cases sont reliées à d’autres cellules qui prennent la valeur 0 ou 1 selon qu’elles soient cochées ou non.

J’ai essayé de mettre des boutons d’options à la place des cases à cocher pour résoudre le problème de coche multiple et j’ai trouvé sur internet comment grouper une ligne (clic droit / Propriétés / onglet Par catégories / section Divers / ligne GroupName), mais :
1) le menu Contrôle n’apparaît pas (clic droit / Format de Contrôle / onglet Contrôle inexistant), donc impossible de lier le bouton à une case de résultat (avec les valeurs 0 et 1 comme fait précédemment par ma collègue)
2) je n’arrive pas à cocher ces boutons d’option (= à activer le point noir à l’intérieur du cercle) que la feuille soit protégée ou non, que les boutons soient protégés ou non, etc.


Pour résumer :
- comment puis-je procéder pour « protéger » les cases à cocher de ma feuille Excel ?**
- est-il possible de limiter le cochage à une case par ligne et, si oui, quelle est la procédure ?**


Merci d’avance pour l’attention que vous porterez à ma demande. Je suis complètement perdue.


* En pensant tout de même à déverrouiller la feuille auparavant.
** De préférence en optant pour une solution qui modifie le moins possible ce qui a été réalisé initialement, histoire de limiter la possibilité que je crée des bugs sans le remarquer…
 

Amy

XLDnaute Nouveau
Re : Protection de formulaire d'enquête et coche unique

Si je ne suis pas claire, il ne faut pas hésiter à me demander d'expliquer davantage.
Je commence à avoir peur d'avoir fait trop long. Et à me dire qu'il fallait peut-être ouvrir un fil distinct pour chaque question.
Mais j'ai toujours autant besoin de vos lumières :)
 

CHALET53

XLDnaute Barbatruc
Re : Protection de formulaire d'enquête et coche unique

Bonsoir,

c'est peut-être quelque chose comme décrit colonne O que tu souhaites (avec interactions en colonne R à U)

C'est un boulot colossal de renouveler pour toutes les lignes

a+
 

Pièces jointes

  • AMY Protection de formulaire d'enquête et coche unique.zip
    81.7 KB · Affichages: 52

Amy

XLDnaute Nouveau
Re : Protection de formulaire d'enquête et coche unique

C'est quelque chose comme ça, oui. Et ça va être pénible à renouveller, mais je ne vois pas d'autre solution.

Par contre, les boutons d'option que tu as créé ont le même problème que quand j'avais essayé d'en créer moi-même, ils sont impossible à cocher. Il y a une astuce pour les cocher ? (Que la feuille soit verrouillée ou non, quand je clique dessus, c'est l'image qui est sélectionnée.)
 

Pièces jointes

  • Sélection bouton d'option.JPG
    Sélection bouton d'option.JPG
    2.7 KB · Affichages: 92

Amy

XLDnaute Nouveau
Re : Protection de formulaire d'enquête et coche unique

Ma collègue avait utilisé l'option Format de Contrôle / Contrôle / Cellule liée. J'imagine que c'est beaucoup moins lourd qu'une macro (surtout quand on renouvelle 195 fois). Parce que là avec 4 cases d'option (sur les 195 nécessaires), le poids du fichier a doublé...
Il n'y aurait pas de solution plus légère ? Pas possible de faire apparaître l'onglet Contrôle pour les boutons d'option ?
 

chris

XLDnaute Barbatruc
Re : Protection de formulaire d'enquête et coche unique

Bonjour

Une autre solution : remplacer tes cases à cocher par des cellules cochables par double clic.

Tu fais 5 colonnes étroites et par un double clic on peut cocher ou décocher la case.
Cela nécessiste une macro qui en plus contrôle le nombre de coches : si une case de la même rangée est cochée, le double clic décoche l'autre.

Je te poste un exemple
 

Pièces jointes

  • Questionnaire.xls
    33 KB · Affichages: 74
  • Questionnaire.xls
    33 KB · Affichages: 84
  • Questionnaire.xls
    33 KB · Affichages: 85

Amy

XLDnaute Nouveau
Re : Protection de formulaire d'enquête et coche unique

Merci !
C'est élégant, la mise en oeuvre semble raisonnable et ça n'a pas l'air trop lourd. Génial :)

- Peux-tu expliciter le code (si je le comprends bien, j'aurais moins de mal à l'intégrer sans erreur) ou me dire où je peux "apprendre" à comprendre ?
- Dans le fichier de ma collègue, les coches étaient reprises sous forme de 0 et de 1 dans le fichier pour faciliter le dépouillement des questionnaires. Je crois que ce n'est pas le cas ici. Comment puis-je reprendre ces données pour les traiter ailleurs ?
L'option Cellule liée (Format de Contrôle) n'apparaît pas non plus pour cette solution.
 

chris

XLDnaute Barbatruc
Re : Protection de formulaire d'enquête et coche unique

Bonjour

Au lieu d'un cellule liée tu comptes simplement les ü par ligne ou colonne selon tes besoins (en colonne AA et suivantes tu testes si la cellule d'origine contient ü au lieu de tester si la cellule liée est vrai ou faux).

Le code de la feuille sert à "capter" le double clic et s'il correspond à une zone définie et, si oui, à lancer le code du module1.
Il part de l'hypothèse que les zones sont nommées groupe suivi d'un numéro de 1 à n (sans trou)
La sub iniligne analyse le groupe concerné (nombre de colonnes notamment) et position de la case double cliquée
La sub coche coche ou décoche la cellule (selon son état précédent) et décoche toutes les autres de la même ligne appartenant au groupe.
 
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re : Protection de formulaire d'enquête et coche unique

Re bonjour,

Peut être que cet exemple pris il y a quelque temps sur ce forum (merci à l'auteur) peut aussi t'inspirer.

bon courage
 

Pièces jointes

  • Mettre Valeur dans Cellule.xls
    45.5 KB · Affichages: 63

Fo_rum

XLDnaute Accro
Re : Protection de formulaire d'enquête et coche unique

Bonjour,

CHALET53, cela me rappelle de bon souvenirs ;); de la même veine mais à partir du fichier de chris :) et avec quelques explications.
 

Pièces jointes

  • FaussesCoches.xls
    37.5 KB · Affichages: 79

Amy

XLDnaute Nouveau
Re : Protection de formulaire d'enquête et coche unique

Merci pour vos réponses.
Je les teste les unes après les autres (en fonction de mes capacités).

J'ai déjà quelques questions pour Chalet53 (ou pour qui voudra bien répondre)
J'ai essayé de ne prendre que le code qui me concerne (et que je comprends...), j'obtiens :
Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B4:C10")) Is Nothing Then
Target = IIf(Target = "", "•", "")
If Target = "•" Then
If Target.Column = B Then Target.Offset(, 1) = ""
If Target.Column = C Then Target.Offset(, -1) = "" Else
End If
End If
End Sub​
Je ne comprends pas vraiment ce que veulent dire les 3 premières lignes, mais j'y travaille. (J'essaie tant bien que mal de me dépatouiller avec la fonction Aide d'Excel pour décoder la syntaxe...)
Pour le moment, les cases se cochent au clic, mais ne se décochent pas en cliquant sur la case voisine.

La partie reproduite ci-dessous était-elle importante (à quoi sert-elle) ou ai-je oublié d'autres bouts ?
Option Explicit
Dim Plage As Range, L As Byte, C As Byte​
Je m'attaque à comprendre les autres fichiers et je vous fait part de mes découvertes.
Merci beaucoup pour votre aide.

Amy, en mode boulet.
 

Amy

XLDnaute Nouveau
Re : Protection de formulaire d'enquête et coche unique

Je crois que j'ai trouvé une solution qui me convient.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim l As Byte, c As Byte
l = Target.Row
If Target.Count > 1 Or Intersect(Target, Range("B2:H10")) Is Nothing Then Exit Sub
For c = 2 To 10
If c <> Target.Column Then Cells(l, c).ClearContents
Next
Target = IIf(Target = "ü", "", "ü")
End Sub
Par contre il me reste un petit nombre de problèmes à régler :
  • étant donné que les solutions impliquent toutes l'utilisation de macros, j'ai le message suivant à l'ouverture du fichier : "Les macros de ce classeur sont désactivées car le niveau de sécurité est élevé, et les macros n'ont pas été signées numériquement ou vérifiées comme étant sûres. Pour exécuter les mcros, vous pouvez les faire signer numériquement ou modifier votre niveau de sécurité."
    Je ne peux pas décemment envoyer un formulaire d'enquête à quelques 500 clients et demander à chacun de modifier son niveau de protection pour mes beaux yeux.
    (Peut-être une question à poser dans un nouveau fil ?)
  • je pensais qu'il serait possible avec cette option de protéger la feuille, mais le verrouillage fait planter la macro. Je suis toujours à la recherche d'une solution pour naviguer uniquement dans les zones à renseigner de mon formulaire..
  • si j'implémente la macro ci-dessus dans mon fichier, comment reprendre les données sous forme de 0 et de 1 pour le traitement ultérieur ?


On va y arriver...

En tout cas un grand merci pour vos aides respectives. Il y a encore un grand nombre de lignes de code qui restent obscures pour moi, mais je ne désespère pas de les comprendre un jour !
 

chris

XLDnaute Barbatruc
Re : Protection de formulaire d'enquête et coche unique

Bonjour

Si tu ne protèges pas les zones cochables, la macro devrait fonctionner.

Sur un questionnaire que je diffuse, j'ai opté pour la solution suivante : un message précise que l'utilisation de macro permet de cocher d'un clic ou double clic mais que la saisie d'un X est acceptée.
Il faut juste tenir compte de vide ou non vide pour l'analyse.

Mais cela ne résout pas l'interdiction de cocher plusieurs cellules d'une même ligne. Pour cela seuls les groupes d'options sont adaptés sans macro.
 

Discussions similaires

Réponses
10
Affichages
400