VBA : références range entre []

  • Initiateur de la discussion Initiateur de la discussion chris
  • 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 !

chris

XLDnaute Barbatruc
Bonjour à tous

J'ai vu que certains des VBistes d'XLD, dont BOISGONTIER par exemple, utilisent une notation de type [A1:B12] ou [nomPlage].

En fouillant sur le Web j'ai vu que MSoft appelle cela la shortcut notation mais il n'y a aucune explication détaillée.

Mes essais n'étant pas très concluants, j'aimerais quelques explications sur la façon de se servir de cette notation, ses avantages et inconvénients.

Merci à tous les VBistes
 
Re : VBA : références range entre []

Salut Chris,

Cela à déjà été évoqué il n'y a quelques heures sur ce forum,
mais je n'ai pas su retrouver où !

Les crochets [] servent à évaluer ce qui se trouve dedans !

Tu peux très bien faire : Rep = [1+2] * ["15"]
Ce qui te donnera : 45

Cela demande beaucoup plus de temps processeur, car excel doit interpréter ce qu'il trouve.

Mieux vaut une programmation "propre" et appeler un range; un range ...

Range("A1") ou Range("PlageNommée")

Après à chacun sa prog.

Voili, voilà 😉
 
Re : VBA : références range entre []

Bonjour Chris, Bruno

En complément de la réponse de Bruno, ci dessous extrait de l'aide vba (sur mot clé Evaluate) :


Remarque L'utilisation des crochets droits (par exemple, "[A1:C5]") revient à appeler la méthode Evaluate avec un argument sous la forme d'une chaîne de caractères. Les exemples suivants sont équivalents dans chaque couple d'expression.

L'avantage des crochets droits réside dans la plus grande concision du code. Celui résultant de l'utilisation de la méthode Evaluate est que l'argument est une chaîne de caractères, ce qui vous permet d'élaborer la chaîne de caractères dans votre code ou d'utiliser une variable Visual Basic.


Il me semble avoir lu un jour, que cette méthode avait été créée pour évaluer des formules matricielles... A confirmer....

tout à fait d'accord avec Bruno sur la vitesse d'exécution plus lente avec l'utilisation des accolades.

bon après midi.
@+
 
Re : VBA : références range entre []

Bonjour

Merci beaucoup, cela éclaire ma lanterne.

Cependant cela me conduit à une question subsidiaire :
Je trouve personnellement plus simple d'utiliser la notation A1 par exemple
Range("A2:A & x)
mais un collègue veut me convaincre (voire contraindre 😡) d'utiliser
Range (Cells(2,1),cells(x,1)
que je trouve peu lisible dès qu'on atteint plus de 6 pour la colonne

Mais votre réponse semble indiquer que ma notation A1, utilisant des chaînes, sera aussi moins performante que la seconde.
 
Re : VBA : références range entre []

Re, bonjour Michel🙂

perso j'utilise également la référence A1, sauf lorsque j'utilise une variable pour les colonnes. A priori c'est moins performant qu'en utilisant "cells", mais la différence est vraiment minime... tu peux faire un test avec les codes ci-dessous :

Code:
Option Explicit
Sub testA1()
Dim t As Single, i As Integer
t = Timer
For i = 2 To 15000
    Range("A1:A" & i).Select
Next i
MsgBox Timer - t
End Sub
Sub testCells()
Dim t As Single, i As Integer
t = Timer
For i = 2 To 15000
    Range(Cells(1, 1), Cells(i, 1)).Select
Next i
MsgBox Timer - t
End Sub

Mais sinon, tu as raison le code est plus lisible et plus facile à écrire, enfin c'est juste mon avis.

@+
 
Re : VBA : références range entre []

[Re]Bonjour

Tiens un ou une squatteuse sur mon fil ! Bienvenue à LoloLala

Merci à tous. Pierrot ton code me conforte : j'ai 5/100ème de seconde d'écart, pas de quoi s'enquiquiner.

Bon week end
 
Re : VBA : références range entre []

Chris, tu as vu ça également 🙂

Lololala, c'est vraiment holéholé dans les post

Attention, sion ça va être la
fessee.gif


Salut Chris
 
- 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