OVH Cloud OVH Cloud

Debug.Print

4 réponses
Avatar
Barsalou
Bonjour

Pourquoi ne puis-je utiliser dans une macro l'instruction Debug.Print ...
Il semble que la fenêtre qui devrait s'ouvrir n'existe pas.
J'ai pourtant vu cette instruction dans une macro trouvée sur le Web.

Merci

4 réponses

Avatar
Anacoluthe
Bonjour !

'Barsalou' nous a écrit ...
Pourquoi ne puis-je utiliser dans une macro l'instruction Debug.Print ...
Il semble que la fenêtre qui devrait s'ouvrir n'existe pas.
J'ai pourtant vu cette instruction dans une macro trouvée sur le Web.


La fenêtre d'exécution VBE existe même si elle n'est pas affichée :
Ctrl+G ou Affichage / Fenêtre Exécution
Si votre macro contient une instruction traceuse Debug.Print
c'est là que ça se passe même si vous ne l'avez pas vu !!!

Pour qui lit ou utilise du code VBA cette fenêtre semble inutile
mais pour qui écrit du code VBA cette fenêtre est un outil
absolument indispensable !

À mon humble avis on ne devrait pas trouver de macro contenant
d'instruction Debug.Print car l'utilisateur non programmeur
n'est pas censé connaître l'utilité de cette fenêtre.
Exemple: je veux une macro me listant tous les styles utilisés
d'un document. Je pourrais faire une boucle utilisant Debug.Print
For Each S In ActiveDocument.Styles
If S.InUse Then Debug.Print S
Next S
Je pense qu'il est plus courtois pour un utilisateur tiers
d'imprimer cette liste dans un autre document ou à la fin
du document actif :
For Each S In ActiveDocument.Styles
If S.InUse Then ActiveDocument.Content.InsertAfter S & vbCr
Next S

Anacoluthe
« Il me reste à souhaiter qu’il y ait beaucoup
de spectateurs le jour de mon exécution. »
- Albert CAMUS

Avatar
Geo

Bonjour !

À mon humble avis on ne devrait pas trouver de macro contenant
d'instruction Debug.Print car l'utilisateur non programmeur
n'est pas censé connaître l'utilité de cette fenêtre.


Tu me fais penser à un certain Laurent Longre qui disait que
l'enregistreur de macros Excel serait supprimé car il était inutile.
Il faut dire qu'il pratique si bien le vba qu'on se demande si ce n'est
pas sa langue maternelle.

--
Geo qui utilise les debug.print sans modération.


--
A+

Avatar
Anacoluthe
Hello Geo !

'Geo' nous a écrit ...
À mon humble avis on ne devrait pas trouver de macro contenant
d'instruction Debug.Print car l'utilisateur non programmeur
n'est pas censé connaître l'utilité de cette fenêtre.
Tu me fais penser à un certain Laurent Longre qui disait que

l'enregistreur de macros Excel serait supprimé car il était inutile.
Il faut dire qu'il pratique si bien le vba qu'on se demande si ce n'est
pas sa langue maternelle.
Geo qui utilise les debug.print sans modération.


Moi aussi je l'utilise sans modération et loin de moi l'idée
de vouloir supprimer la fenêtre exécution ;-)

Pour ceux qui n'auraient pas bien compris la discussion
l'instruction Debug.Print sert à la mise au point (débogage) des
programmes : on place ce type d'instuction comme mouchards
pour placer des infos d'exécution dans la fenêtre exécution.
Une fois que le programme est au point, on vire les debug.print.
Donc une bonne macro 'diffusable' ne contient pas de debug.print
ou si elle en contient, elle n'est pas très orthodoxe :-)

Il n'y aurait que Laurent Longre pour considérer debug.print
inutile puisqu'il n'a jamais besoin de déboguer son code
mais bon lui il est tombé dedans quand il était petit !!!
:-D )))))

A+

Anacoluthe
« Il me reste à souhaiter qu’il y ait beaucoup
de spectateurs le jour de mon exécution. »
- Albert CAMUS


Avatar
Barsalou
Merci.
Je n'avais pas trouvé la fenêtre ad-hoc car la commande n'existe que dans
l'éditeur VBA, et que Ctrl G ne faisait rien car j'étais aussi dans la
mauvaise fenêtre.