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.