Accueil | Ce site | CV | Excel | Livre dor | Macros XL4 | Modèles | VBA
Lemploi de copies d'écran présente certains avantages : il s'agit par définition, dune reproduction précise de lenvironnement de développement VBA, qui montre lindentation du code et les couleurs utilisées dans léditeur. Sur un plan pédagogique, cest l'idéal. Cependant, ce choix présente également plusieurs inconvénients :
La réalisation des copies décran et leur compression à un format adapté au Web (en général .gif) consomme beaucoup de temps.

Fig. 1 - Exemple de copie décran montrant une boucle
telle quelle se présente dans léditeur VBA.
Même après avoir été compressées, les images sont plus lourdes (en taille de fichier) que le texte correspondant, ce qui ralentit le chargement des pages, en particulier pour tous ceux qui ne disposent pas dun accès rapide à lInternet.
Lillustration ci-dessous par exemple pèse déjà 16 Ko. Les utilisateurs de modem accèdent à Internet à 56 Kbit au mieux, soit 7 Ko (56 que divise 8, car un octet représente 8 bits). Cela signifie que dans des conditions optimales, le seul chargement de limage de la figure 2 nécessitera plus de 2 secondes, et pourra atteindre couramment 4 à 5 secondes. C'est trop long.

Fig. 2 - Exemple de copie décran montrant une boucle telle quelle se présente dans léditeur VBA.
Enfin, si certaines lignes du code reproduit sont très longues, lillustration peut nécessiter un défilement horizontal pour les internautes qui utilisent un petit écran ou emploient une basse résolution (800 pixels par 600, voire moins).
Il ma donc paru plus raisonnable de faire apparaître le code VBA en tant que texte, directement dans les pages Web. Toutefois, un simple Copier/Coller ne suffit malheureusement pas.
En effet, voici comment apparaît le code correspondant à la figure 1 :Sub ReportDonnees()
' Report des valeurs stockées dans Mat()
Dim i As Integer
With ActiveCell
For i = 0 To 9
.Offset(i) = Mat(i)
Next i
End With
End Sub
3 éléments ont été perdus :
Il est possible de modifier manuellement le code HTML, mais c'est long et fastidieux. En particulier, le rétablissement des couleurs doit se faire individuellement pour chacun des mots. Le risque derreurs et/ou doublis nest pas négligeable dès que le code à reproduire atteint une certaine ampleur.
Une tâche qui peut se faire manuellement, mais est longue, fastidieuse et comporte un risque derreurs et/ou doublis correspond exactement à ce quil faut essayer dautomatiser.
Cest pourquoi jai écrit un programme en VBA sous Word qui génère directement le code HTML à insérer dans la page Web. Voici le résultat obtenu :
Sub ReportDonnees() ' Report des valeurs stockées dans Mat() Dim i As Integer With ActiveCell For i = 0 To 9 .Offset(i) = Mat(i) Next i End With End Sub
Le code reproduit ressemble à celui de la figure 1, sans les inconvénients des copies décran.