XL 2013 lancement de phase de test de l’exporter html pdf coloration syntaxique version 2025/2026

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 !

patricktoulon

XLDnaute Barbatruc
Bonjour a tous
voici le tout nouveau moteur d'export html et pdf(par l’intermédiaire de l’imprimatur pdf de windows)de vos code avec coloration syntaxique
voici comment il se presente
comme vous le voyez dans cette capture ci dessous
des outils ont été ajouté au ruban onglet developpeur
1748285658299.png


1 Liste des modules
ce menu vous developpe la liste des module qui sont présents dans tout les classeur actifs de l'instance excel
il vous suffit d'en choisir un pour exporter en html sur le bureau un exemplaire html du code complet du module avec coloration syntaxique
deux msgbox vont s'afficher vous demandant de choisir oui ou non pour html ou pdf
si html un autre vous demande si vous voulez l'ouvrir apres production




2 sauts de page
si coché le pdf respectera les saut de pages qui commence avant chaque sub
à décocher si vous avec beaucoup de petite sub de 3/4 lignes

NB: si les saut de pages ne vous conviennent pas vous avec la possibilité dans le code du module d'insérer des lignes commentaire [B][COLOR=rgb(0, 168, 133)]'pageX[/COLOR][/B]
comme ici
1748286139370.png


3 le menu Liste Macros
ce menu liste les subs et fonctions de tout les modul du classeur actif( quand c'est un xlam) sinon les modules de lui même
voir capture ci dessous
demo3.gif

vous cliquez sur une des subs et vous l'exportez comme pour les modules

démonstration pdf
demo3.gif





démonstration une sub
demo3.gif




et les grands et long modules ne lui font pas peur


demo3.gif


Allez merci d'avance pour vos retours
j'attends avec impatience afins de finaliser ce projet xlam aussi
moi je connais un fruit qui fait wow! la il va nous faire un arrêt 🤣 🤣 🤣 🤣
 

Pièces jointes

Bonjour Patrick
Chez moi ça à l'air de fonctionner !
une Vidéo
Jean marie
Edit : j'ai constaté que j'ai deux fois la Liste "Liste des Macros" dans le ruban !
on le voit dans la Vidéo
 

Pièces jointes

  • TestPatrick-1.gif
    TestPatrick-1.gif
    166.7 KB · Affichages: 81
Re
Voir ce que j'ai constaté !
Rien dans la "Liste des Macros"
je ne suis pas un expert ! peux tu me dire ce qu'il faut faire pour bien faire l'enregistrement d'un xlam
merci par avance !
Jean marie
 

Pièces jointes

  • TestPatrick-3.gif
    TestPatrick-3.gif
    256.6 KB · Affichages: 70
j'aurais du le dire pour moi ça coule de source mais bon ....
si tu clique sur enregistrer en xla il faut fermer le fichier et en ouvrir un autre sinon bien sur tu aura 2 fois la modif ruban
puisque le xla a le même code et ruban donc si le xlam et xlsm sont ouvert en même temps ..........
c'est évident un peu en même temps
le bouton n'est la que si ça vous convient et que vous voulez le garder hop en xla et tu tu peux jeter le xlm original
c'est pas compliqué
 
jean-marie en plus je vois deux xla dans tes addins tu peux expliquer ????????????????
fait moi plaisir
  1. supprime les xlam que tu a enregistré
  2. reprends le fichier original
  3. clique sur enregistrer en tant que xla (ET RIEN D AUTRE !!!)
  4. ferme ce fichier tu n'en a plus besoin
  5. va dans tes options et active le xla
  6. n'ouvre plus jamais l'original
 
Hello,
Pour le fun, voici un autre moyen pour faire de la coloration syntaxique : utiliser du javascript.
Il existe une bibliothèque javascript qui permet de faire de la coloration syntaxique de code :
highlight.js
Le surligneur de syntaxe JavaScript préféré d'Internet prenant en charge Node.js et le Web.

192 langues et 512 thèmes
Détection automatique du langage
Fonctionne avec n'importe quel balisage HTML
Zéro dépendances
Compatible avec tout framework JS

Alors comment l'utiliser par exemple dans le code de patricktoulon.
Voici un code VBA pour l'utiliser :
Code:
Sub CreateHighlightJS(cde, nFile$, Optional pdf As String = "")
    Dim Stream As Object, HTML$
    HTML = "<!DOCTYPE html><html><head>" & _
           "<link rel=""stylesheet"" href=""https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/github-dark.min.css"">" & _
           "<script src=""https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js""></script>" & vbCrLf & _
           "<script> hljs.initHighlightingOnLoad(); </script>" & vbCrLf & _
           "</head><body>" & _
           "<pre><code>" & vbCrLf & _
           cde & _
           "</code></pre> " & vbCrLf & _
           "</body></html>"
    Set Stream = CreateObject("ADODB.Stream")
    With Stream
        .Charset = "utf-8"
        .Open
        .WriteText HTML
        .SaveToFile nFile, 2 ' 2 = overwrite
        .Close
    End With
    If Err Then
        Err.Clear
        MsgBox " le html n'a pas pu être produit verifier le chemin du fichier  ou les autorisation windows"
    End If
    On Error GoTo 0
End Sub
On récupère les scripts javascript highlightjs sur les serveurs cdnjs qui sont gratuits et normalement tout le temps disponible. Le code à colorer est à mettre entre des balises <pre>
Pour tester , dans la procédure ExportModul_click mettre ceci :
VB:
'   Create_EmbedHTML code, fichier, frmt
    CreateHighlightJS code, fichier, frmt
et voici ce que cela donne avec le thème github
HtmlColorGithub.png

et avec le thème github-dark
HtmlColorGithub-Dark.png


Il y a deux inconvénients par rapport à la coloration de patricktoulon :
on est à la merci d'internet , du serveur cdjn .
On a pas le vrai code HTML disponible puisqu'en fait c'est le navigateur qui l'affiche en interprétant les scripts javascript. Il faudrait récupérer la
page affichée après exécution des scripts javascript (outerHTML).
Ami calmant, J.P
 
re
Bonjour @jurassic pork
Il y a deux inconvénients par rapport à la coloration de patricktoulon :
on est à la merci d'internet , du serveur cdjn .
heu?... dans quel film ?
le code html est dispo direct dans VBA puisque c'est lui qui le produit

j'utilise un domdocument dispo dans excel et c'est pas près d'être supprimé j'ai eu confirmation
c'est toi qui utilise le JS en ligne
inconvénient avec ton astuce
1° la coloration n'est pas complète
2° tu es dépendant d'une connexion pour avoir le JS

cela dit je retient l'astuce
 
re
Bonjour @jurassic pork

heu?... dans quel film ?
le code html est dispo direct dans VBA puisque c'est lui qui le produit
hello patricktoulon,
Il y a deux inconvénients par rapport à la coloration de patricktoulon :
on est à la merci d'internet , du serveur cdjn .
tu as mal compris ce que j'ai écrit : c'est pas ton code qui a des inconvénients mais le code qui utilise highlightjs
 
re
pour lancer l'impression
VB:
Sub test()
    With ThisWorkbook.VBProject.VBComponents("Module1")
        code = .CodeModule.Lines(1, .CodeModule.CountOfLines)
    End With
    fichier$ = CreateObject("WScript.Shell").SpecialFolders("desktop") & "\res.html"
    CreateHighlightJS code, fichier, "pdf"
    CreateObject("wscript.shell").Run fichier
End Sub


Sub CreateHighlightJS(cde, nFile$, Optional pdf As String = "")
    Dim Stream As Object, HTML$
    HTML = "<!DOCTYPE html><html><head>" & _
            "<link rel=""stylesheet"" href=""https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/github-dark.min.css"">" & _
            "<script src=""https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js""></script>" & vbCrLf & _
            "<script> hljs.initHighlightingOnLoad(); </script>" & vbCrLf & _
            "</head><body>" & _
            "<pre><code>" & vbCrLf & _
            cde & _
            "</code></pre> " & vbCrLf & _
            "<script> window.onload = function() { window.print(); }; </script>" & vbCrLf & _
            "</body></html>"
    Set Stream = CreateObject("ADODB.Stream")
    With Stream
        .Charset = "utf-8"
        .Open
        .WriteText HTML
        .SaveToFile nFile, 2 ' 2 = overwrite
        .Close
    End With
    If Err Then
        Err.Clear
        MsgBox " le html n'a pas pu être produit verifier le chemin du fichier  ou les autorisation windows"
    End If
    On Error GoTo 0
End Sub
reste plus qu'a choisir l'imprimante pdf si c'est pas elle qui est para"métrée dans windows
je vais recharger le js et regarder la coloration
 
ben en fait les deux JS sont dépendants l'un de l'autre donc le link rel et style js sont obligatiore dans la balise

perso chez moi comme tel c'est en blanc
attention au caractère le js transforme pas
Sub test()
With ThisWorkbook.VBProject.VBComponents("Module3")
code = .CodeModule.Lines(1, .CodeModule.CountOfLines)
End With
code = Replace(Replace(code, "<", "&lt;"), ">", "&gt;")

fichier$ = CreateObject("WScript.Shell").SpecialFolders("desktop") & "\res.html"
CreateHighlightJS code, fichier, "pdf"
CreateObject("wscript.shell").Run fichier
End Sub
 
Dernière édition:
- 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
Retour