Quelqu'un peut-il m'aider à rendre ce code viable?VBA Contenu Excel en HTML (créer un fichier HTML à partir d'Excel)
L'idée ici est de rassembler une ligne d'ensemble avec des informations sur différentes lignes et d'insérer cette information dans un fichier html.
Quelques avantages sur le code qui me ferait très reconnaissant:
1) faire fonctionner 8P; 2) une sorte de façon pour l'utilisateur de choisir l'endroit où il va enregistrer le fichier comme une fenêtre de sauvegarde normale (si ce n'est pas possible, laissez-le au moins choisir le nom du fichier dans le dossier assigné); et 3) s'assurer que le code capture toutes les lignes non vides sur la ligne.
Un grand merci à la communauté pour l'attention!
Ce dont je suis venu est ci-dessous.
Sub CreateHTML()
'Define your variables.
Dim iRow As Long
Dim iStage As Integer
Dim iCounter As Integer
Dim iPage As Integer
'Create an .htm file in the assigned directory.
Dim sFile As String
sFile = "J:\GEROC1\Avaliação RO\4) CICLOS\ArquivosExportados" & "\test.html"
Close
'Open up the temp HTML file and format the header.
Open sFile For Output As #1
Print #1, "<html>"
Print #1, "<head>"
Print #1, "<style type=""text/css"">"
Print #1, "table {font-size: 16px;font-family: Optimum, Helvetica, sans-serif;Border -collapse: collapse}"
Print #1, "tr {border-bottom: 1px solid #A9A9A9;}"
Print #1, "td {padding: 4px; margin: 3px; padding-left: 20px; width: 75%; text-align: justify;}"
Print #1, "th { background-color: #A9A9A9; color: #FFF; font-weight: bold; font-size: 28px; text-align: center;}"
Print #1, "</style>"
Print #1, "</head>"
Print #1, "<body>"
Print #1, "<table class=""table""><thead><tr class=""firstrow""><th colspan=""2"">Ficha de Risco</th></tr></thead><tbody>"
'Start on the 2nd row to avoid the header.
iRow = 2
'Translate the first column of the table into the first level of the hierarchy.
Do While WorksheetFunction.CountA(Rows(iRow)) > 0
If Not IsEmpty(Cells(iRow, 23)) Then
For iCounter = 1 To iStage
'Print #1, "</ul>"
iStage = iStage - 1
Next iCounter
Print #1, Cells(iRow, 1).Value
iPage = iPage + 1
If iStage < 1 Then
iStage = iStage + 1
End If
End If
Loop
'Add ending HTML tags
Print #1, "</body>"
Print #1, "</html>"
Close
End Sub
Vous n'ajoutez aucun code HTML dans votre boucle. Vous devez ajouter la table 'tr' et' td' avec du contenu dedans. – Patrick
Ops j'ai oublié de mentionner ... les cellules qu'il imprime ont déjà les déclarations tr et td ... – PunchTheNewbie