Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème avc la fonction "EVALUATE"

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 !

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.
 
Dernière édition:
Re : Problème avc la fonction "EVALUATE"

Rebonjour Magic_Doctor,
Evaluate et les variables VBA ne font pas bon ménage !
Perso je me contenterais de x = [SUM(OFFSET(TableauCF1,,1))]
A+
Un petit exemple de scène de ménage

Code:
Sub Evaluate_Rech_Ligne()
  ' recherche n° ligne contenant 2 critères (...ou plusieurs)
  
  MsgBox [MATCH(1,(I2:I1000="TOTO")*(G2:G1000=2650),0)]
  
  'Avec variables
  A = "TOTO": B = 2650
  MsgBox Evaluate("MATCH(1,(I2:I1000=""" & A & """)*(G2:G1000=""" & B & """),0)")
  
End Sub

Le 2eme Msgbox plante ! Pourquoi ? Idem avec B = "2650"

Robert
 
Re : Problème avc la fonction "EVALUATE"

Re, Bonsoir Herdet

Code:
Sub Evaluate_Rech_LigneOK()
Dim a$, b, formule$
' recherche n° ligne contenant 2 critères (...ou plusieurs)
MsgBox [=MATCH(1,(I2:I1000="TOTO")*(G2:G1000=2650),0)]
'Avec variables
a = "TOTO": b = 2650
formule = "=MATCH(1,(I2:I1000=" & Chr(34) & a & Chr(34) & ")*(G2:G1000=" & b & "),0)"


MsgBox Evaluate(formule) 'test ok


MsgBox Evaluate("=MATCH(1,(I2:I1000=" & Chr(34) & a & Chr(34) & ")*(G2:G1000=" & b & "),0)") 'test ok


MsgBox ["=MATCH(1,(I2:I1000=" & Chr(34) & a & Chr(34) & ")*(G2:G1000=" & b & "),0)"] 'test pas ok
End Sub


PS: Le numéro de ligne renvoyé n'est pas le bon.
J'ai testé avec TOTO en I6 et 2650 en G6
Les MsgBox affichent 5
 
Re : Problème avc la fonction "EVALUATE"

Bonsour®
Re, Bonsoir Si...



Il suffit pour cela d'utiliser la balise BBCODE suivante: [NOPARSE]
Code:
[/NOPARSE]Copier ici le code VBA[NOPARSE]
[/NOPARSE]
🙄 je dirais même plus
[NOPARSE]
VB:
[/NOPARSE]Copier ici le code VBA[NOPARSE]
[/NOPARSE]


VB:
Sub Evaluate_Rech_Ligne()
 ' recherche n° ligne contenant 2 critères (...ou plusieurs) 
 MsgBox [MATCH(1,(I2:I1000="TOTO")*(G2:G1000=2650),0)]
  'Avec variables 
A = "TOTO": B = 2650
MsgBox Evaluate("MATCH(1,(I2:I1000=""" & A & """)*(G2:G1000=""" & B & """),0)")  
End Sub
 
Re : Problème avc la fonction "EVALUATE"

Bonsoir Modeste Geedee

Re, Bonsoir Si...
Tu peux aussi celle que j'évoque dans ma signature.

C'est pas que j'avais suggéré aussi 😉 ?
(c'est vrai qu'il manquait un verbe pour que ce soit compréhensible 😉 désolé )

EDITION: Merci Si... mais je m'adressais à Modeste Geedee dans ma citation ci-dessus 😉
 
Dernière édition:
Re : Problème avc la fonction "EVALUATE"

re

Si... tu y tiens 😛
VB:
Sub Evaluate_Rech_Ligne()
  'recherche n° ligne contenant 2 critères (...ou plusieurs)
  MsgBox [MATCH(1,(I2:I1000="TOTO")*(G2:G1000=2650),0)]+1
  'Avec variables
  a = "TOTO": b = 2650
  MsgBox Evaluate("=MATCH(1,(I2:I1000=" & """" & a & """" & ")*(G2:G1000=" & b & "),0)")+1
End Sub
 
Dernière édition:
Re : Problème avc la fonction "EVALUATE"

Bonjour,
Evaluate fonctionne mais donne un mauvais résultat : le + 1 à la fin est de trop !

Si... tu y tiens 😛 Non, pas vraiment mais c'est simplement de la curiosité🙂
 
Re : Problème avc la fonction "EVALUATE"

Bonjour

Herdet:
Faut croire que ma signature est rarement lue alors 😉 (voir en dessous de mon Cordialement 😉 )
(Cela fait pourtant un bail qu'elle fait la retape pour l'highlight 😉)
Tu peux même varier les plaisirs donc les couleurs
en utilisant soit:[NOPARSE]
VB:
[/NOPARSE]macro[NOPARSE]
[/NOPARSE]
VB:
Sub Subs()
Dim a As Range
'REM
Msgbox "toto"
End Sub
ou en utilisant classiquement [NOPARSE]
VB:
[/NOPARSE]macro[NOPARSE]
[/NOPARSE]
VB:
Sub Subs()
Dim a As Range
'REM
Msgbox "toto"
End Sub
 
Re : Problème avc la fonction "EVALUATE"

Bonsour® Bobby
Salut l'ami,
... en plus le code est en couleurs comme dans l'éditeur !
C'est super pour la présentation et la compréhension

Je vais étudier de prés les balises d' XLD
Bonne journée
Robert

a posteriori la balise [NOPARSE]
Code:
 [/NOPARSE]admet également un parametre


exemple :
[NOPARSE][CODE=VBA]
......................
ici ton code Vba
......................
[/NOPARSE]
l'avantage par rapport à la balise [NOPARSE][HIGHLIGHT][/NOPARSE]
est que l'icone # de la balise [NOPARSE]
Code:
[/NOPARSE] est à disposition dans l'éditeur avancé
il ne reste qu' à ajouter =VBA
[ATTACH]879692.vB[/ATTACH]
 

Pièces jointes

  • Capture.JPG
    13.7 KB · Affichages: 56
  • Capture.JPG
    13.7 KB · Affichages: 55
  • Capture.JPG
    13.7 KB · Affichages: 41
Re : Problème avc la fonction "EVALUATE"

Bonjour Modeste Geedee

Merci pour cette astuce

Dans ce cas, il ne devrait pas être trop compliqué de modifier cette balise pour que le [NOPARSE]
Code:
[/NOPARSE]
soit la valeur par défaut quand on clique sur [FONT=arial black][B]#[/B][/FONT] ,  non ?

DavidXLD qu'en penses-tu?
 
Re : Problème avc la fonction "EVALUATE"

Toutes mes/nos excuses mais on ne prend plus assez de temps pour bien lire tout le contenu d'un message si bien qu'on en voit rarement à la fin ... mais peut être qu'en mettant ce message en en-tête ...? 😉😕

Bon, il faut lire le mode d'emploi des balises sur Liste des balises BB - Excel Downloads Forums et se mettre vite fait au HTML.
.. même de la vidéo et du Flash, le pied 🙂

Robert
 
Re : Problème avc la fonction "EVALUATE"

Bonsour®
Bonjour

Faut croire que ma signature est rarement lue alors 😉 (voir en dessous de mon Cordialement 😉 )
(Cela fait pourtant un bail qu'elle fait la retape pour l'highlight 😉)

😎depuis ceci :
https://www.excel-downloads.com/threads/au-secours-david.180411/
ou j'y proposais le terme réduire,
d'autres se sont allégrement posés en interdicteurs et gardiens de l'ordre...
j'utilise ceci dans mon profil :
 

Pièces jointes

  • Capture.JPG
    19.1 KB · Affichages: 70
  • Capture.JPG
    19.1 KB · Affichages: 63
Re : Problème avc la fonction "EVALUATE"

Re

Modeste Geedee
Depuis tout à l'heure, je lis ce que je trouve sur VBulletin pour savoir comment avoir par défaut
Code:
quand on clique sur #
Tu n'aurais pas une idée par hasard ?
 
- 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

Discussions similaires

Réponses
7
Affichages
4 K
BlackMagicCat
B
J
  • Question Question
Réponses
0
Affichages
1 K
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…