• Initiateur de la discussion Initiateur de la discussion Excel_lent
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Excel_lent

XLDnaute Impliqué
Bonjour à tous,

Il y a deux catégories de programmeurs :
-ceux qui sont pour écrire le maximum et
-ceux qui sont pour minimaliser le code.
Il y a ceux qui écrivent Range("A1") au lieu de Range("A1").Value.
D'autres qui utilisent [A1] au lieu de Range("A1").

Etant de la troisième catégorie*, j'ai cherché** s'il y avait une différence de sens (hors goût, habitude …) entre ces 2 dernières écritures.
Je précise que le propos ne porte pas sur une différence entre Range("A1").Value et Range("A1").Formula !
Le petit fichier joint apporte peut-être un autre éclairage.
Si certains ont des explications détaillées, je suis preneur.




* comme le plus grand nombre je pense
** comme beaucoup
 

Pièces jointes

Re : Range et []

Bonjour,

Il une autre catégorie :

cells(1,1)+cells(1,2)

Je n'utilise jamais range pour une seule cellule et je n'utilise jamais "A1". Il est plus facile d'utiliser des valeurs numériques

J'utilise range pour:
range(cells(1,1),cells(10,5))
 
Re : Range et []

Bonjour,

Tu as oublié ceux qui préfèrent s'embêter avant, en nommant les cellules et en écrivant :

Range("Valeur1").Value + Range("Valeur2").Value

pour ne pas s'embêter après. S'il faut ajouter des lignes ou des colonnes dans la feuille, il n'y a rien à changer dans le code. En plus, pour moi, ça parle mieux car je donne des noms explicites. Ce n'est qu'un avis 🙂

Cordialement
 
Re : Range et []

Bonjour,

la notation [...] ou evaluate (....) a été créée pour pouvoir utiliser des formules matricielles avec VBA.
la variable est alors définie sur l'ensemble de l'instruction comprise dans les crochets.
si on marque
mavar = [A1] + range("A2") (ou cells(x,y))

cette saisie est donc illogique car elle ferme l'évaluation alors qu'il y a autre chose à faire. En fermant trop tôt ou en ouvrant trop tard le crohets, le compilateur ne s'intéresse pas à ce qui est en dehors des crochets.

La rigueur voudrait que l'on emploie la fonction evaluate qu'en matriciel. Marqué [A1] est "prendre un marteau pour etc." mais ca m'arrive souvent de l'écrire car mon poil dans la main est prioritaire.
 
Re : Range et []

Bonsoir à tous,

Merci pour cette info michel_m.
Je parle du poil dans la main bien sûr😛

Je rigole!😀 Merci pour ton explication que je ne connaissais pas. Cependant il n'y a pas besoin en VBA de ces artifices pour faire du matriciel...😕 Serait ce donc une survivance du passé ?

Cordialement
 
Re : Range et []

Re, sans oublier les autres.

Merci Michel pour cette explication. J'étais loin de penser aux formules matricielles.
Elles me posent déjà pas mal de problèmes hors VBA.
Heureux les ambidextres qui peuvent faire de la main droite ce que refuse de faire la main gauche ! Malheureux sont les maladroits au clavier ! Pour eux, tous les coups ne sont pas permis.

Merci de vos interventions Pyrof, Mécano et Roland mais comme je l'ai dit, des goûts et de habitudes … chacun a sa recette.


Spit tu dois avoir encore en mémoire cette discussion :
https://www.excel-downloads.com/threads/feuille-activate-ou-feuille-select.93638/
J'ai failli intervenir pour ajouter que Range("A1") = Range("A2").Formula permet de copier la formule in extenso (sans réajustement d'adresse).


JC, j'ai cherché un bon moment avant d'arriver à ce test et en pensant à ceux qui ont des problèmes de codes à cause de variables ( non déclarées ou mal déclarées).
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour