XL 2016 Convertir fichier HTML en format CSV

debenexcel

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide pour une macro Excel. J'ai plusieurs fichiers de données en format HTML que j'aimerais les convertir en format CSV sous Excel avec une macro.
La structure du fichier HTML est la suivante:
Les titres de colonnes commencent à partir de la ligne 19.
Après la table comporte 5 colonnes. Le contenu dans la 1ère colonne est affiché sur deux lignes, j'aimerais copier le texte de la 2e ligne (si existe) dans une nouvelle colonne. Dans certaines lignes de cette première colonne la même description comporte plusieurs codes et numéros. La description est affichée une seule fois, mais le code est le même pour chaque numéro. Pour ces cas, je souhaiterais que la macro dupliquera la description pour chacune des lignes.
Un exemple de ces données est ci-joint vous donnant un aperçu sur l'input et le résultat souhaitable.

Je vous remercie d'avance de votre aide.

Cordialement,
 

Pièces jointes

  • classeurV2.xlsx
    10.7 KB · Affichages: 16

debenexcel

XLDnaute Nouveau
Re patricktoulon

C'est parfait! Ça fonctionne correctement :) Merci bcp !
Une petite rectification, dans l'output il affiche les données centrées , est-ce possible de les afficher alignées à gauche?
Une autre demande si possible, au lieu de modifier le nom du fichier dans le code et comme j'ai plusieurs fichiers à modifier et je ne suis pas le seul qui va travailler sur ces conversions et mes collègues ne sont tous familiarisés avec ce genre de manipulations, est-ce possible d’intégrer au début de la macro un code permettant de rechercher le fichier html à convertir donnant par exemple accès à un écran pour récupérer le fichier à partir d'un répertoire prédétermine; et à la fin de l'exécution un écran se déclenchera pour l’enregistrement du fichier en format csv (ex. séparateur barre oblique et valeurs entre guillemets ) ?
Merci bcp
 

debenexcel

XLDnaute Nouveau
Re patricktoulon

Bonjour,
Serait-il possible d'intégrer dans la macro les fonctions décrites ci-dessus si cela n'est pas trop compliqué, Ou bien il serait mieux d'ouvrir un autre billet? J'ai fouillé un peu sur internet mais je n'ai pas trouvé une solution adéquate capable de répondre à mon besoin. Merci de ton aide.
 

Staple1600

XLDnaute Barbatruc
Re

Exemple basique
Enrichi (BBcode):
(avec 15 ans de poussière en prime ;) -> fil de 2005)

https://www.excel-downloads.com/threads/file-browser-vba.31008/#post-141884
Sub DialogueFichiers()
Dim fd As FileDialog
'Crée une boite de dialogue de sélection de fichiers :
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Show
If fd.SelectedItems.Count > 0 Then
MsgBox fd.SelectedItems(1)
End If
Set fd = Nothing
End Sub
Voilà déjà une base pour commencer ;)
 

debenexcel

XLDnaute Nouveau
Re
Le code dans #52 ouvre juste la boite de dialogue, moi je cherche un code qui ouvre un dossier spécifique et qui importe le fichier html sélectionné. une fois fait, dans la 2e étape je vais appliquer le code de conversion, et dernière étape l'exporter en csv (un autre code) ;)
 

Staple1600

XLDnaute Barbatruc
Re
•>debenexcel
Voila ce que tu pouvais faire, jeune padawan
(je viens de tester - test OK)
VB:
Sub DialogueFichiers_bis()
Dim fd As FileDialog
'Crée une boite de dialogue de sélection de fichiers :
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.Show
If fd.SelectedItems.Count > 0 Then
ConvertHtmlToCsv CStr(fd.SelectedItems(1))
End If
Set fd = Nothing
End Sub
NB: Evidemment, faut que soit présent dans le projet VBA, la macro ConvertHtmlToCsv
(j'ai pris la version du message#45)
 

Discussions similaires

Réponses
2
Affichages
247

Statistiques des forums

Discussions
312 103
Messages
2 085 313
Membres
102 860
dernier inscrit
fredo67