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
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
Cordialement
Ryu
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein
Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple
Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)
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![]()
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
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![]()
Cordialement
Ryu
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein
Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple
Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)
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...
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.
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.
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.
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.
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
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).… 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 +
PS : pour ma part moi aussi j'utilise Evaluate![]()
Cordialement
Ryu
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein
Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple
Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)
bonjour
comme je disais on peut même créer un tableau 2 dim avec ce raccourci de evaluate
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
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
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
Pour moi, c'est définitivement "non" à la notation par crochets droits...
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Bonjour Pierre,
Bravo pour cette belle démonstration
Je n'ai jamais utilisé cette annotation, très en vogue sur certains sites
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Partager