Bonjour,
Voilà une chose que j’avais vu avec Marc-L à mes débuts les crochets :
Ceux-ci servent à faire une évaluation et donc une autre façon d’écrire un Evaluate
https://docs.microsoft.com/fr-fr/off...ation.evaluate
Version imprimable
Bonjour,
Voilà une chose que j’avais vu avec Marc-L à mes débuts les crochets :
Ceux-ci servent à faire une évaluation et donc une autre façon d’écrire un Evaluate
https://docs.microsoft.com/fr-fr/off...ation.evaluate
Salut Ryu
Pour moi, ça n'apporte rien de plus à Evaluate (que j'utilise constamment) puisque dans la plupart des cas, l'argument de Evaluate est une chaine qui doit être recomposée, ce qui empêche dont l'utilisation des crochets droits.
D'ailleurs, le lien que tu donnes le dit: les crochets droits peuvent amener de la concision. Ok, mais je préfère souvent, voire toujours, la lisibilité du code à la concision... C'est comme la déclaration des variables avec le préfixe plutôt que le As... A part parler un langage d'initié pour épater la galerie, je ne vois pas trop...
Mais à nouveau, chacun son style de code ;)
C’était Juste une précision pour ceux qui ne connaissent pas ou mal cette écriture ;)
PS : Je fais au plus simple lorsque j’envoie un message de mon phone dans les transports ;)
Bonsoir, pardonnez moi mais moi aussi je trouve plus parlant Evaluate que les crochets. Ca rend un code plus aisément compréhensible à tous ceux qui n'ont pas forcément un niveau supérieur.
Un langage d'initiés n'offre qu'un avantage: masquer des choses à des gens qui n'ont pas à les connaître. Ce qui semble pour le moins antinomique dans un forum dont le but est l'entraide, la compréhension et l'élévation du plus grand nombre.
Par ailleurs, il semblerait que la créatrice de ce post Julie_67 soit aux "Japonais absents"?
Enfin moi ce que j'en dit???
Cordialement 8-)
En fait, le problème de la syntaxe avec crochets droits, c'est qu'on croit que ça pointe vers une plage ou une cellule, alors qu'en fait, comme l'explique le lien donné par Ryu, ça ne pointe vers rien du tout, ça évalue une expression.
Ca fait longtemps que j'avais envie de faire un billet sur ce qu'on appelle erronément une plage nommée. Car en fait, la plage nommée, ça n'existe pas. Lorsque, dans une cellule, on utilise =Paramètres!$B$1, appelle-t-on cela une plage? Non bien sûr, on appelle cela une... formule...
Pièce jointe 479718
Dès lors, pourquoi appelle-t-on Prime une plage nommée? On devrait l'appeler Formule nommée, non? Quand je dis cela en formation, on me regarde avec des yeux ronds comme des soucoupes, mais appeler cela plage nommée masque le fait que l'on peut écrire des formules auxquelles on donne un nom, formules qui sont simples ou complexes, et qui peuvent utiliser des références absolues ou... relatives, comme dans l'exemple suivant où l'on utilise une formule nommée pour multiplier par 3 la valeur de la cellule qui se trouve à gauche de celle qui utilise la formule nommée et que j'utilise en B1 et en B2 pour faire référence respectivement à A1 et A2.
Pièce jointe 479722
On ne fait d'ailleurs rien d'autre que de créer une formule nommée lorsque l'on crée des listes de validation en cascade.
Pièce jointe 479725
Pièce jointe 479730
Pièce jointe 479729
Donc, la notation à crochets droits ne renvoie pas à une plage, mais à l'évaluation de ce qu'on a mis entre crochets, qui peut être une plage, parmi d'autres types de valeurs.
Pièce jointe 479734
En plus de l'absence de saisie semi-automatique, une différence entre la notation à crochets droits et Evaluate réside dans le fait qu'avec les crochets, on pratique le hard coding puisque ce qui est à évaluer est en dur, alors qu'Evaluate permet de modifier le texte avant de le passer à Evaluate.
Re
En effet, et comme cela a été évoqué dans la discussion avant (les Crochets), j'ai jugé utile d'en donné juste l'explication (auteur de la discussion : étudiant) via le lien et non des conseils d'utilisations (n'est pas le but dans cette discussion).Citation:
… comme l'explique le lien donné par Ryu, ça ne pointe vers rien du tout, ça évalue une expression.
… …
… …
Pierre il ait bien d'avoir ajouté ce + d'explications pour ceux qui débutent et +
:plusser:
PS : pour ma part moi aussi j'utilise Evaluate ;)
bonjour
comme je disais on peut même créer un tableau 2 dim avec ce raccourci de evaluate
Pièce jointe 479862
et maintenant que tout le monde est d'accords sur la définition de l'expression "[....]"
je répète donc ce que j'ai dis plus haut
écrire comme ca c'est demander a vba de calculer((EVALUER)) cette expression que ce soit pour un range ou autre
donc écrire [A1] c'est évaluer l'expression et le résultat sera un range
? typename(evaluate("A1"))
Range
? typename([A1])
Range
Au passage... Rigolo, non? Ca veut dire qu'en plus du "late binding" (ben oui, Ce n'est qu'à l'exécution que le type de la donnée manipulée est évalué), ça demande à l'interpréteur de regarder d'abord dans les variables, en ce compris les globales, puis dans les fonctions s'il a quelque chose qui correspond au nom entre crochets, avant d'aller le chercher dans Excel... Tout cela pour mettre des crochets à la place de Range :roll:
Pièce jointe 480069
Pour moi, c'est définitivement "non" à la notation par crochets droits...
Bonjour Pierre,
Bravo pour cette belle démonstration :plusser:
Je n'ai jamais utilisé cette annotation, très en vogue sur certains sites