Magic_Doctor
XLDnaute Barbatruc
Bonsoir,
Je progresse ! Maintenant, c'est du sérieux, je me lance dans le monde incommensurable d'"EVALUATE" et je sens que plus rien ne sera jamais pareil !
En attendant, plantages lamentables...
Pas toujours évident cette fonction, mais elle permet de résoudre des choses difficiles ou impossibles à résoudre sans elle et aussi de raccourcir singulièrement certaines procédures. Les capacités de cette fonction se lisent comme une proustitude ! Un seul problème, d'après ce que j'ai pu glaner à droite et à gauche, ce n'est pas une fonction qui s'exécute très rapidement (voir, à ce sujet ici : Evaluate - Most Powerful Command in VBA?).
Mon problème est simple.
J'ai une plage de chiffres qui va de A1 à A20.
Je veux faire (en VBA bien sûr) la somme de tous les chiffres de cette plage, et j'écris :
Dim x as Double
x = [Sum(A1:A20)] --> ça marche !
Je nomme maintenant la plage (A1:A20) "Lola", et j'écris :
Dim x as Double
x = [Sum(lola)] --> ça marche !
En fait, cette plage se trouve immédiatement à droite d'un tableau qui se nomme "TableauCF1".
Plutôt que de nommer la plage "A1:A20" "Lola" (au bout d'un moment on finit par avoir un nombre incensé de plages nommées...), comme, pour différentes raisons je suis un peu obligé de nommer néanmoins quelques plages dont le tableau "TableauCF1", je localise la plage "A1:A20" ainsi :
Dim plage as Range
Set plage = [TableauCF1].Offset(, 1) --> ça marche !
J'ai essayé :
x = [Sum(plage)] --> ça ne marche pas !
x = [Sum([plage])] --> ça ne marche pas !
x = Evaluate("Sum(plage)") --> ça ne marche pas !
x = Evaluate("Sum([plage])") --> ça ne marche pas !
Oui, au bout d'un moment on essaie n'importe quoi...
Merci à celui qui connaîtra le moyen de résoudre cette énigme.
Je progresse ! Maintenant, c'est du sérieux, je me lance dans le monde incommensurable d'"EVALUATE" et je sens que plus rien ne sera jamais pareil !
En attendant, plantages lamentables...
Pas toujours évident cette fonction, mais elle permet de résoudre des choses difficiles ou impossibles à résoudre sans elle et aussi de raccourcir singulièrement certaines procédures. Les capacités de cette fonction se lisent comme une proustitude ! Un seul problème, d'après ce que j'ai pu glaner à droite et à gauche, ce n'est pas une fonction qui s'exécute très rapidement (voir, à ce sujet ici : Evaluate - Most Powerful Command in VBA?).
Mon problème est simple.
J'ai une plage de chiffres qui va de A1 à A20.
Je veux faire (en VBA bien sûr) la somme de tous les chiffres de cette plage, et j'écris :
Dim x as Double
x = [Sum(A1:A20)] --> ça marche !
Je nomme maintenant la plage (A1:A20) "Lola", et j'écris :
Dim x as Double
x = [Sum(lola)] --> ça marche !
En fait, cette plage se trouve immédiatement à droite d'un tableau qui se nomme "TableauCF1".
Plutôt que de nommer la plage "A1:A20" "Lola" (au bout d'un moment on finit par avoir un nombre incensé de plages nommées...), comme, pour différentes raisons je suis un peu obligé de nommer néanmoins quelques plages dont le tableau "TableauCF1", je localise la plage "A1:A20" ainsi :
Dim plage as Range
Set plage = [TableauCF1].Offset(, 1) --> ça marche !
J'ai essayé :
x = [Sum(plage)] --> ça ne marche pas !
x = [Sum([plage])] --> ça ne marche pas !
x = Evaluate("Sum(plage)") --> ça ne marche pas !
x = Evaluate("Sum([plage])") --> ça ne marche pas !
Oui, au bout d'un moment on essaie n'importe quoi...
Merci à celui qui connaîtra le moyen de résoudre cette énigme.
Dernière édition: