"Interdire" l'acces à certaines cellules

GUGUSSE2

XLDnaute Occasionnel
Bonjour,

Je veux créer une feuille de calcul,
Particularité : Selon les réponses données par l'utilisateur, je veux que certains champs soient "inaccessible" car ils ont une valeur "prédéfinie" par la première donnée.
Exemple pour un calcul qui demande :
- cas particulier 60 : Ø, maxi
- cas particulier 0 : Ø, maxi
- cas général A : Ø, mini, maxi, angle
Avec, une fois choisi le cas ("60", "0" ou "A") par un clic sur la case correspondante, la visualisation de la figure adaptée (voir fichier joint).
Dans les cas particuliers "60" et "0", le mini et l'angle ne sont pas demandés et doivent donc être "inaccessibles" pour l'utilisateur (le mini vaut "zéro" et l'angle vaut soit 60° soit 0°).
Questions :
- est-il possible de "bloquer" l'accès à certaines cases (et de leur affecter une valeur) ?
- comment gérer l'affichage des figures par un "clic" sur une case (je sais le faire en fonction d'une valeur, mais en fonction d'un "clic" ?) ?
Je reste à votre écoute pour de plus amples renseignements.

Cordialement,
GUGUSSE2.
 

Pièces jointes

  • Figures tableur.xlsx
    13.8 KB · Affichages: 32

sousou

XLDnaute Barbatruc
Bonjour
Ce que tu décris semble possible, mais vu le contenu du fichier joint, on ne risque pas de t'aider beaucoup.
Il manque un grand nombre d’indications sur je que tu veux faire et de quelle manières tu envisages de le faire
Saisie de donnée?
 

GUGUSSE2

XLDnaute Occasionnel
Bonjour,
Cela me semblais clair, mais je vais essayer de vous expliquer plus en détail :
1) l'utilisateur doit choisir l'un des trois cas (pour simplifier appelons les "60", "0" et "A").

2) S'il choisit "60" ou "0", l'image correspondante apparaîtra et il devra donner :
21) le diamètre,
22) le maxi (le mini vaut "0" et l'angle est fixé par son choix en 1)? Ils ne doit pas pouvoir être modifiés).
Il aura la réponse à son problème.

3) S'il choisit "A", il devra donner :
31) le diamètre,
32) le mini,
33) le maxi,
34) l'angle.
Il aura la réponse à son problème.

Selon le cas d'étude, certaines cellules n'ont pas à être renseignées (si elles sont "visibles") et ne doivent pas être modifiées. !

S'il est possible d'affecter une valeur (1,2 ou 3) à une variable selon la case cliquée en 1), je dois pouvoir :
a) afficher la "bonne image",
b) demander au fur et à mesure (avec des actions conditionnelles) les données nécessaire (selon la valeur de la variable et selon que la donnée précédente est satisfaite).

Est-ce la bonne approche (mais je ne sais pas affecter une valeur en fonction d'une case cliquée) ou y a-t'il plus simple ?

Cordialement,
GUGUSSE2.
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
1) l'utilisateur doit choisir l'un des trois cas (pour simplifier appelons les "60", "0" et "A").
Où ça ? Dans des cellules (lesquelles ?) ou par des InputBox en VBA ? Voire un UserForm ?
Pareil pour la suite …
Remarque: Plutôt que des images, ça m'intéresserait de modéliser la chose au moyen d'un graphique en nuage de points s'ajustant selon les données spécifiées.
 
Dernière édition:

GUGUSSE2

XLDnaute Occasionnel
Bonjour,

Je ne sais pas si tu connais l'usinage sur machines-outil (le tour pour être précis), mais je vais quand même t'expliquer la raison d'être de cette feuille :
Sur un tour, la pièce est généralement tenue par un mandrin trois mors qui (en principe) se déplacent simultanément. Le centre du cercle défini par les trois points de contact est donc (théoriquement) confondu avec l'axe de rotation de la broche.
Dans la pratique, ce n'est pas rigoureusement exact et la feuille de calcul est là pour donner l'épaisseur des cales à ajouter entre la pièce et les mors (2 mors / 3) pour que l'axe de la pièce serrée soit de nouveau confondu avec l'axe de la broche.

C'est le cas "A".
Pour cela, il faut :
- le diamètre de la pièce,
- le mini et le maxi relevés avec un comparateur en contact avec la pièce quand on fait tourner la broche,
- et la position angulaire du maxi par rapport au mors N° 1 (vertical en haut), sens horaire, entre 0 et 120°.

Mais cette feuille peut aussi servir si l'on veux désaxer la pièce volontairement d'une certaine valeur,
- avec une seule cale entre l'un des mors et la pièce (le maxi se trouve alors à 60° de la verticale, cas "60")
- ou avec deux cales sous deux mors adjacents (le maxi se trouve alors sous le mors vertical, cas "0").


Plutôt que des images, ça m'intéresserait de modéliser la chose au moyen d'un graphique en nuage de points s'ajustant selon les données spécifiées.
Comme il s'agit de besoins différents, je ne crois pas qu'un nuage évolutif soit la solution, mais je ne t'interdis pas de chercher dans cette voie pour le plaisir !
Je pense finalement que l'idéal serait de poser les questions (uniquement celle nécessaires) (et de remplir les cellules) au fur et à mesure des besoins, selon le cas traité, avec une figure claire pour aider l'utilisateur.

Maintenant, des "InputBox en VBA ou un (des) UserForm", je ne suis pas suffisamment compétent pour choisir la solution la plus simple à utiliser et a modifier si le besoin s'en faisait sentir.
J'aurai peut-être une attirance pour trois "userform".

Merci de vous intéresser à mon problème,
Cordialement,
GUGUSSE2.
 

Dranreb

XLDnaute Barbatruc
Je vois… Enfin un tout petit peu mieux.
Et les cales ont des épaisseurs normalisées, ou on peut en avoir de n'importe laquelle ?
Que représente le cercle externe ? (Edit, ah je crois avoir trouvé: il figure le serrage des mors.)
La moyenne entre le maxi et le mini ne donne-t-il pas forcément le diamètre de la pièce ?
Avez vous quand même ouvert mon classeur, vous ne m'avez pas dit ce que vous en pensiez ?
Le problème avec le graphique c'est que si c'est juste une correction microscopique du centrage, il ne va rien montrer d'un point de vue schématique parce que ça ne se verra pas dessus. À moins d'exagére juste pour voir l'angle sans chercher à reproduire le défaut réel…
 
Dernière édition:

GUGUSSE2

XLDnaute Occasionnel
Bonsoir,

J'avais regardé ta réponse sans avoir beaucoup de temps. J'ai donc paré au plus pressé !
J'ai vu ton classeur et j'y ai vu une cellule où l'on peux choisir le cas. Cela ne me plaît pas trop car pas assez visible.
Je crois même qu'il faut d'emblée faire apparaître les trois figures et n'en laisser qu'une une fois le choix fait !
Y a-t'il plus visible que les "inputbox" (c'est comme cela que s'appelle la cellule "A3" ?) ? les userform ?

En ce qui concerne les figures :
Pour les cas "60" et "0", le cercle bleu (externe) représente le cercle associé aux points de contacts "mors-pièce-cales" (supposé centré sur l'axe de rotation).
Pour le cas général '"A"), je ne saurais affirmer quelque chose car ce cas représente justement la réalité, où le cercle de serrage n'est pas concentrique à l'axe de rotation et où il faut interposer des cales d'une épaisseur calculée par le classeur et à placer aux bons endroits pour que la pièce (supposée ronde) soit (à peu près) concentrique avec l'axe de rotation.
La figure est donc fausse et n'est à mon sens d'aucune utilité dans cet état.
Je cherche encore comment représenter simplement le défaut et le remède.
Ces cales sont "théoriques" et l'utilisateur de la machine cherchera à s'en rapprocher le plus possible (il existe du clinquant en 0,01, 0,02, 0,05, 0,1, ... mm d'épaisseur).
Si l'origine du problème que je me pose t’intéresse, je joins les fichiers.
Tu conviendras que leur lecture et leur compréhension n'est pas à la portée de tout le monde et surtout pas à un amateur qui fait de l'usinage sur le tour un passe-temps !
Il faut que ce classeur soit un outil qui rendre service et pas un casse-tête !

PS. Si je me rappelle bien des "userforms", il n'y a plus besoin de se préoccuper de rendre inaccessibles certaines "entrées" du programme,puisque l'on ne demande que ce que l'on veux, me trompai-je ?

Cordialement,
GUGUSSE2.
 

Pièces jointes

  • 3jt.pdf
    462 KB · Affichages: 36
  • 3jt.xlsm
    15 KB · Affichages: 28

Dranreb

XLDnaute Barbatruc
Bonjour.
Vous avez réussi à mettre un gros Label (Intitulé)
Mettez des OptionButton (Boutons d'option) et des TextBox (Zone de Texte).
Un contrôle Image permettrait de mettre celle ci ailleurs que dans le coin haut gauche comme le permet seulement la propriété Picture du UserForm.
Mettez des Noms mnémoniques à tous ces contrôles commençant par OBn pour les OptionButton et TBx pour les TextBox. TBxDiam par exemple pour le diamètre. C'est la propriété Name dans la fenêtre de propriété.
La couleur des textes est définie par la propriété ForeColor.
Cette ressource peut vous aider à trouver facilement les codes de couleurs appropriés.
Edit: Je n'avais regardé que l'UserForm1. Je pensais aux boutons d'option pour choisir l'action, et une seule image chargée ensuite selon le choix.
 

GUGUSSE2

XLDnaute Occasionnel
Bonsoir,

Merci pour ce complément d'information.

J'ai remarqué deux choses :

1) si je clique sur une couleur pour la changer, je n'ai pas à disposition de couleurs.
Après avoir rentré un code couleur (pas facile de remplacer le texte occupant la case !), j'ai droit à la palette des couleurs en cliquant sur la flèche !

2) dans ta ressource, si je clique sur une case de la colonne "H" pour copier le code qui y figure, j'ai un message d'erreur (voir PJ) très difficile parfois à supprimer pour pouvoir "avoir la main" !

Mettez des OptionButton (Boutons d'option) et des TextBox (Zone de Texte).
Un contrôle Image permettrait de mettre celle ci ailleurs que dans le coin haut gauche comme le permet seulement la propriété Picture du UserForm.

Quel est l'intérêt de cela dans la première "userform" ?
A quoi servent-ils exactement ?
Où se trouve le "Contrôle Image" ?

Mon problème maintenant est de faire apparaître cette "UF" à l'ouverture du fichier et d'aiguiller vers trois autres "UF" selon le bouton "VALIDEZ" cliqué (puis d'arriver sur les résultats).

Cordialement,
GUGUSSE2.
 

Pièces jointes

  • erreur.jpg
    erreur.jpg
    35.5 KB · Affichages: 19

Dranreb

XLDnaute Barbatruc
Le mieux c'est de remplacer tout le code de couleur par celui qu'on veut.
Normalement, après avoir sélectionné un code de la colonne H de ma fourniture il suffit, après avoir sélectionné tout l'ancien code, de faire Ctrl+V.
Je crois que je devine la cause de l'erreur. Essayez en supprimant les attributs PtrSafe. Le plus simple c'est de remplacer "PtrSafe" par "" dans tout le projet VBA. Il faudrait les remettre le jour où vous auriez une version antérieure à Excel 2016 tournant sur une architecture à 64 bits.
Les boutons d'option permettent un choix. Pendant que l'UserForm est affiché, lorsqu'on clique sur l'un d'eux il reste coché et les autres non. Accessoirement il déclenche un évènement qui peut être traité dans la programmation de l'UserForm. Les TextBox elles, permettent des saisies de valeurs.
Toutes ces pièces d'un UserForm s'appellent des 'contrôles'.
Pour afficher un UserForm il suffit d'exécuter sa méthode Show.
Par exemple dans le module ThisWorkbook :
VB:
Private Sub Workbook_Open()
UserForm1.Show
End Sub
J'imaginais plutôt un seul UserForm pour tout faire. Les CommandButton déclenchent un évènement Click. Pour mettre dans le code un modèle de la procédure qui le traite, le plus simple c'est de double-cliquer sur le bouton dans la fenêtre de conception.
Les contrôles Image l'ont aussi, de sorte que vous pourriez vous passer des boutons si vous vouliez que l'utilisateur clique sur une image.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
D'ailleurs si l'idée de départ c'était que l'utilisateur clique sur une image pour faire son choix du cas de figure, ce que vous n'aviez jamais expliqué et qu'on ne pouvait absolument pas deviner, il aurait été possible aussi d'affecter une macro spécifique à chaque image de formulaire dans votre classeur de départ.
Une solution simple aurait été que pour chaque image la macro qui lui est associée active une feuille de calcul spécialement dédiée au type de calcul correspondant.
 
Dernière édition: