Evaluer un bout de code vba

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

Calvus

XLDnaute Barbatruc
Bonsoir à tous,

Y a t-il un moyen d'évaluer le code que l'on conçoit au fur et à mesure ? Correspondant à F9 quand il s'agit des formules.
Par exemple, dans un code, évaluer la ligne n°2.

Merci
 
Re : Evaluer un bout de code vba

Bonsoir Pierrot,

Le pas à pas a t-il une autre fonction que de surligner les lignes sur lesquelles on se trouve ? Si oui, comment faut il faire ?

Ce dont je parlais, c'est d'obtenir un résultat comme avec F9 dans les formules. C'est à dire que l'on édite une formule complexe, on sélectionne une autre formule dans la première, et que l'on évalue différents résultats à l'intérieur.

Merci
 
Re : Evaluer un bout de code vba

Bonsoir.
On peut aussi mettre des points d'arrêt simplement en cliquant dans la minuscule marge,
On ne peut pas évaluer la ligne puisqu'elle ne possède pas de valeur, mais on peut évaluer les expressions au moyens d'espions.
Cordialement.
 
Re : Evaluer un bout de code vba

RE,

Le pas à pas a t-il une autre fonction que de surligner les lignes sur lesquelles on se trouve ? Si oui, comment faut il faire ?

il exécute l'instruction selectionnée lorsque tu l'actionne (la touche F8)... cela te permet de voir en autre l'initailisation / modification des valeurs des variable dans la fenêtre "variable locales". (barre de menu => affichage => "fenêtre variables locales"....
 
Re : Evaluer un bout de code vba

Re, bonsoir Dranreb,

On peut aussi mettre des points d'arrêt simplement en cliquant dans la minuscule marge,
On ne peut pas évaluer la ligne puisqu'elle ne possède pas de valeur, mais on peut évaluer les expressions au moyens d'espions

Bon, j'ai pas tout compris, et il va falloir que je me penche sur ces fenêtres espions.

il exécute l'instruction selectionnée lorsque tu l'actionne (la touche F8)... cela te permet de voir en autre l'initailisation / modification des valeurs des variable dans la fenêtre "variable locales". (barre de menu => affichage => "fenêtre variables locales"....

Ok, là non plus je ne connaissais pas. Ca m'a l'air bien pratique. Je vais essayer de tenter de comprendre comment ça fonctionne. j'ai essayé sur un bout de code, je vois bien qu'il se passe des choses, mais je ne saisis pas tout encore.

Merci de vos réponses
 
Re : Evaluer un bout de code vba

Re,

J'ai exécuté cette macro pour décaler des cellules (adaptée d'un code sur le site de JB).
Code:
Sub transpose_2()
 col = 14
  For Each c In Range([A2], [A65000].End(xlUp))
    Cells(2, col) = [A1]
    Cells(2, col) = c
    Cells(2, col) = c.Offset(, 1)
    col = col + 1
    Next c
End Sub

Je vois donc le changement de valeur que prend "col" quand j'appuie sur F8. Donc ça c'est un grand pas en avant.
Y a t(il un moyen de voir ce qu'il se passe directement sur le fichier ? C'est à dire exécuter la macro pas à pas ?

Merci, c'est 😎
 
Re : Evaluer un bout de code vba

salut

Si... tu écris ta macro avec les déclarations de variables et en évitant des abus ([...])
Code:
Sub transpose_2()
  Dim c As Range, col As Byte
  col = 14
   For Each c In Range("A2:A" & Range("A65000").End(xlUp).Row)
     Cells(2, col) = Range("A1")
 ...
de F8 en F8 jusqu'à l'initialisation du c (première ligne après le For), tu auras au survol de Cells(2, col), de col, de Range("A1"), de c et de c.Offset(0,1) les valeurs correspondantes (rien pour vide évidemment).
 
Re : Evaluer un bout de code vba

Bonsoir,

Ok, merci, mais à quoi sert, dans cet exemple de déclarer les variables ? Je sais qu'il est mieux de le faire, mais je ne vois pas en quoi dans cet exemple précis.
Par ailleurs, le code que tu as inscris ne fonctionne pas... normal ?

en évitant des abus ([...])
Pourquoi dis tu ça ? J'ai pu lire en plusieurs endroits que c'était nettement mieux que d'utiliser Range.

Merci
 
Dernière édition:
Re : Evaluer un bout de code vba

re

tu ne lis pas tout 😉

... signifie dans le code qu'il y a une suite (inchangée pour ton test).

Les déclarations* permettent, entre autres, de savoir ce qu'on a (ce que tu demandais) au survol avec la souris.

[A1]* fait intervenir l'évaluation du contenu de la cellule même quand ce n'est pas utile et peut ralentir les procédures conséquentes; avec l'explication précédente, son survol ne donne pas ce contenu.
Quel est l’intérêt de la recherche du contenu quand on veut, par exemple, une couleur de police (hors MFC) ?


* sujets maintes fois abordés
 
Re : Evaluer un bout de code vba

OKKKKK !!! 😀 😀 😀

J'avais pas pigé le coup du survol ! Génial ! Ceci dit, je viens de vérifier, on a les valeurs au survol (Yep !) même dans les sub où les déclarations n'ont pas été faites..

Bon, c'est encore un peu flou tout ça.
tu auras au survol de Cells(2, col), de col, de Range("A1"), de c et de c.Offset(0,1) les valeurs correspondantes (rien pour vide évidemment).

En début de ligne oui, mais pas directement sur c.offset par exemple, ni Range ("A1").... ou ai-je encore raté quelque chose ?

[A1]* fait intervenir l'évaluation du contenu de la cellule même quand ce n'est pas utile et peut ralentir les procédures conséquentes; avec l'explication précédente, son survol ne donne pas ce contenu.
Quel est l’intérêt de la recherche du contenu quand on veut, par exemple, une couleur de police (hors MFC) ?

Ok , je crois que je vois, bien qu'encore obscur, mais alors Range("A1") fait référence uniquement à la position et non pas du contenu ? c'est bien ça que tu veux dire ?

Merci, c'est cool ! 🙂

EDIT Merci Dranreb, encore une précision. Ce qui est bien avec vous, c'est que j'ai un peu de mal à digérer vos réponses, mais une fois le travail fait, je sens que j'ai progressé d'un bond. Très très précis. Merci.
 
Dernière édition:
Re : Evaluer un bout de code vba

Bonsoir ,

La fenetre d'éxécution ctrl G peut d'aider également à vérifier des variables globales entre autre .

La syntaxe est : exemple pour savoir ce qu'il y a en cells(25, 5)

debug.Print cells(25,5)
donne en retour 40 si tel est le contenu de cette cellule.
 
- 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
32
Affichages
1 K
Réponses
1
Affichages
423
Retour