Alternance entre deux cellules. Comment faire ? RÉSOLU

GUGUSSE2

XLDnaute Occasionnel
Bonjour,

Je veux pouvoir "entrer" dans un tableur, soit un angle de rotation "A" (quelconque), soit un nombre de division ("Nb"), ce qui me donnera comme angle "360/Nb ".
Je veux que cela se passe ainsi :
- que le tableur "travaille" avec l'angle donné, soit par l'entrée "A" soit par le calcul "360/Nb".
- Que lorsque l'on entre une valeur dans l'une des deux cases (soit "A" soit "Nb"), la valeur présente dans l'autre case soit effacée.

Mon problème semble se résumer à "travailler" avec la dernière "entrée" et effacer la précédente
(ou effacer tout et "travailler" avec l'entrée présente) !
Mais ça, je ne sais pas faire.

Merci de votre aide.
GUGUSSE2
 
Dernière édition:

GUGUSSE2

XLDnaute Occasionnel
@eriiiic : J'ai vu ta proposition (écrite car au début je ne pouvais pas lire le fichier joint) "1/N", et elle résout le problème posé, mais je trouve plus "normal" de dire "je veux N divisions" que de dire "je veux un angle de 1/N°".

@Dranreb : j'ai atteins l'age où l'on commence à avoir des pertes de mémoire.
Même s'il est bon de la faire "travailler" pour la conserver plus longtemps en (bon) état, j'ai suffisamment de créations à mettre au point (ce fichier en est l'exemple) pour ne pas en "rajouter".

S'il n'y a pas de solutions "élégante" avec VBA, je me contenterai de la solution "1/N".

Cordialement,
GUGUSSE2
 

eriiic

XLDnaute Barbatruc
mais je trouve plus "normal" de dire "je veux N divisions" que de dire "je veux un angle de 1/N°".
Il faut pouvoir distinguer les 2 types de saisie.
On peut aussi envisager qu'une des 2 saisie commence ou finisse par un caractère de ton choix.
Par exemple saisir 5d pour 5 divisions.
Je ne me suis occupé que de la saisie en B3 et de sa conversion en B5. Reprendre les autres formules.

Mais tout est possible avec vba. Tout dépend ce que tu appelles élégant mais tu dois trouver ton bonheur parmi les propositions
eric
 

Pièces jointes

  • diviseur.xlsx
    114.4 KB · Affichages: 28

GUGUSSE2

XLDnaute Occasionnel
Effectivement, vu comme cela, ça mérite réflexion !
Je pensais plus au départ donner le choix de remplir une case ou l'autre, sans demander de syntaxe particulière, juste un nombre entier.
C'est peut-être compliquer inutilement les choses.
Ne maitrisant pas VBA, je ne sais pas s'il peut répondre à ma première attente :
- soit donner un nombre qui soit l'angle de rotation désiré,
- soit donner un nombre qui soit le nombre de division souhaité sur le cercle. Il faudra bien sûr convertir ce nombre en "angle" (360/N).
Le tableur devra être capable de traiter la dernière "entrée", comment, je ne sais pas.

cordialement,
GUGUSSE2
 

GUGUSSE2

XLDnaute Occasionnel
Bonsoir,

Mais c'est super !
Exactement le comportement que je souhaitais !

Merci a toi, eriiiic.
Il ne me reste plus qu'à comprendre ce que tu as programmé et a vérifier la validité du nombre de division (je ne peux faire tourner ma broche que degré par degré).
Est-ce que quelqu'un sait si l'on peut marquer "terminé" ?

Merci également à la communauté.
Cordialement,
GUGUSSE2
 

Si...

XLDnaute Barbatruc
Bonsoir

Je te donne quand même une autre version VBA (avec ce j'ai compris de ta demande) qui traite aussi les saisies farfelues.

Pour mieux te montrer la démarche, j'ai intégré, en français, les formules que tu as dans la feuille.
Maintenant, tu fais comme tu l'entends (à moins d'être sourd aux appels prodigués ;)) !
Bonsoir,
Est-ce que quelqu'un sait si l'on peut marquer "terminé" ?
Les remerciements sont amplement suffisants. D'autres lecteurs pourraient être intéressés par d'autres propositions.
 

Pièces jointes

  • Macro pour sélectionner le cas.xlsm
    55.3 KB · Affichages: 19

GUGUSSE2

XLDnaute Occasionnel
Bonsoir Si...,
il y a un petit problème dans ta version :
Les résultats donnés sont faux. Peut-être n'as-tu pas vu que mes formules étaient écrites sur plusieurs lignes (astuce vue sur ce forum pour rendre les formules "à rallonge" plus digestes) et d'autre part, la case "angle" ne réagit pas toujours en tapant une nouvelle valeur.
Ce qui est gênant aussi, c'est que les valeurs de l'autre case reste affichée. On ne sait donc plus à quoi se rapporte le résultat.
Mais c'est vrai que VBA sait faire des "miracles" !

PS : Si je cherchais à "terminer" ce fil, c'était justement pour que ceux qui chercheraient à résoudre le même problème voient qu'il avait trouvé réponse.

cordialement,
PUSSY.
 

eriiic

XLDnaute Barbatruc
Ce n'est pas ce que j'ai compris, pourtant ça me parait très clair et sans ambiguïté :)
Que lorsque l'on entre une valeur dans l'une des deux cases (soit "A" soit "Nb"), la valeur présente dans l'autre case soit effacée.
J'avais bien vu que ta réponse était incomplète pour moi, mais je pensais que tu voulais juste l'aiguiller.
Et du coup j'ai fait une proposition par formule car il semblait peiner avec vba.
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Mais c'est super !
Exactement le comportement que je souhaitais !

Est-ce que quelqu'un sait si l'on peut marquer "terminé" ?
comme le disait récemment un répondeur émérite : rien n'est jamais "terminé"
ci joint une solution sans VBA ...:cool:
upload_2017-9-12_22-48-53.png


upload_2017-9-12_22-49-47.png
 

Pièces jointes

  • diviseur (2).xlsx
    122 KB · Affichages: 22

Discussions similaires

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 155
dernier inscrit
lombrik