Convertir un tableau Excel en tableau HTML, Excel VBA
Pour convertir un tableau Excel en tableau HTML en utilisant VBA (Visual Basic for Applications), nous allons suivre les étapes suivantes :
Étapes principales :
- Sélectionner les données du tableau que vous souhaitez convertir.
- Boucler à travers les lignes et colonnes de ces données pour générer la structure HTML du tableau.
- Créer un fichier HTML et y écrire le contenu du tableau au format HTML.
- Ouvrir ou enregistrer ce fichier HTML pour que vous puissiez l’utiliser ou le visualiser dans un navigateur.
Voici un exemple de code VBA détaillé pour accomplir cette tâche :
Code VBA pour convertir un tableau Excel en tableau HTML
Sub ConvertirTableauEnHTML() ' Déclaration des variables Dim ws As Worksheet Dim tableau As Range Dim cell As Range Dim html As String Dim i As Long, j As Long Dim fichierHTML As String Dim outputFile As Integer ' Définir la feuille de calcul contenant le tableau Set ws = ThisWorkbook.Sheets("Sheet1") ' Remplacer "Sheet1" par le nom de votre feuille Set tableau = ws.Range("A1:C5") ' Remplacer "A1:C5" par la plage de votre tableau ' Initialiser la chaîne HTML html = "<html>" & vbCrLf html = html & "<head><title>Tableau Excel en HTML</title></head>" & vbCrLf html = html & "<body>" & vbCrLf html = html & "<table border='1' cellpadding='5' cellspacing='0'>" & vbCrLf ' Ajouter les en-têtes du tableau (ligne 1) html = html & "<tr>" For j = 1 To tableau.Columns.Count html = html & "<th>" & tableau.Cells(1, j).Value & "</th>" Next j html = html & "</tr>" & vbCrLf ' Ajouter les lignes de données For i = 2 To tableau.Rows.Count html = html & "<tr>" For j = 1 To tableau.Columns.Count html = html & "<td>" & tableau.Cells(i, j).Value & "</td>" Next j html = html & "</tr>" & vbCrLf Next i ' Fermer la balise du tableau et du HTML html = html & "</table>" & vbCrLf html = html & "</body>" & vbCrLf html = html & "</html>" ' Définir le chemin du fichier HTML à enregistrer fichierHTML = Application.GetSaveAsFilename(FileFilter:="HTML Files (*.html), *.html") ' Vérifier si l'utilisateur a choisi un emplacement pour enregistrer If fichierHTML <> "False" Then ' Ouvrir le fichier pour écrire outputFile = FreeFile Open fichierHTML For Output As outputFile ' Écrire le contenu HTML dans le fichier Print #outputFile, html ' Fermer le fichier Close outputFile ' Message de confirmation MsgBox "Le tableau a été converti en HTML avec succès !", vbInformation End If End Sub
Explication du code
1. Déclaration des variables :
- ws: représente la feuille de calcul contenant les données.
- tableau: représente la plage de données du tableau Excel (vous pouvez ajuster la plage selon vos besoins).
- html: contient la structure du tableau HTML.
- fichierHTML: le chemin du fichier HTML où le tableau sera enregistré.
- outputFile: permet d’ouvrir et de manipuler le fichier pour y écrire le code HTML.
2. Construction du code HTML :
- En-têtes : Le code génère une ligne d’en-têtes <th> pour les premières cellules de la plage.
- Données : Chaque ligne du tableau Excel est lue et convertie en une ligne <tr> dans le tableau HTML, avec chaque cellule transformée en <td>.
3. Enregistrement du fichier HTML :
- GetSaveAsFilename permet à l’utilisateur de choisir où et sous quel nom enregistrer le fichier HTML.
- Le fichier HTML est ensuite ouvert en mode écriture et le contenu du tableau est écrit dedans.
- Enfin, le fichier est fermé et un message de confirmation est affiché.
Personnalisation
- Plage du tableau : Changez la plage Set tableau = ws.Range(« A1:C5 ») pour correspondre à la plage de votre tableau.
- Feuille de calcul : Remplacez « Sheet1 » par le nom réel de votre feuille de calcul.
- Attributs du tableau HTML : Vous pouvez personnaliser le tableau HTML (ajouter des couleurs, des bordures, etc.) en modifiant le code HTML dans la variable html.
Utilisation
- Ouvrez l’éditeur VBA dans Excel (ALT + F11).
- Dans le menu Insertion, sélectionnez Module pour créer un nouveau module.
- Collez le code dans le module.
- Exécutez la macro ConvertirTableauEnHTML pour convertir le tableau Excel en fichier HTML.
Ce code vous permettra de convertir facilement vos tableaux Excel en fichiers HTML et de les utiliser dans des pages web ou d’autres applications.