Extraction VBA de données depuis pages HTML - VB/VBA/VBS - Programmation
Marsh Posté le 19-01-2015 à 14:04:48
Bonjour,
conformément aux règles de ce forum, sans voir de code (entre balises) ni un exemple de fichier HTML,
je peux juste affirmer que le VBA dispose pourtant des fonctions nécessaires pour manipuler des chaines de caractères
comme par exemple Split, tout est dans l'aide VBA intégrée !
Sans compter les dll HTML de Windows, consulter le site MSDN ou les tutoriels présents sur le net …
_______________________________________________________________________________________________
Tous unis, tous Charlie
Marsh Posté le 20-01-2015 à 11:45:47
Voici les lignes qui m'intéressent dans les pages HTML des sous-dossiers :
Code :
|
Marsh Posté le 20-01-2015 à 11:50:33
Et voici une ébauche non fonctionnelle de ma macro VBA, qui résulte de nombreux tests car je ne suis pas un pro en la matière :
Code :
|
Marsh Posté le 20-01-2015 à 15:27:38
Démonstration de la fonction Split !
Le plus formateur, en dehors de consulter l'aide VBA intégrée (bien plus efficace que de se perdre sur le net !),
est de suivre le code en mode pas à pas via la touche F8 tout en contrôlant le contenu de la fenêtre Variable locales …
Code à tester dans un nouveau classeur, le résultat de l'extraction est affiché dans la première feuille,
la variable texte T représentant les données d'un fichier, la variable tableau BL les balises à extraire :
Code :
|
L'extraction inversant la couleur et le modèle …
Dans le cas de l'ajout d'une nouvelle balise à extraire, la ligne de code n°13 doit être modifiée
mais le reste du code ne change pas évitant ainsi une production gazière !
___________________________________________________________________________
Tous unis, tous Charlie
Marsh Posté le 04-02-2015 à 11:37:33
Merci !
Et comment tu adapterais cela pour mon cas précis ?
C'est surtout la partie ouverture HTML et recherche qui m'intéresse dans un premier temps...
Marsh Posté le 04-02-2015 à 16:55:51
Justement comme ce n'est pas précis …
Étudier ma démonstration en usant du mode pas à pas, cela aide à comprendre !
Sinon voir du côté des fonctions VBA manipulant du texte comme par exemple InStr, Mid, etc … L'aide étant bien documentée !
Marsh Posté le 19-01-2015 à 13:24:21
Bonjour à tous,
Je vous explique ma problématique en VBA sous EXCEL :
J'ai un répertoire C:\CLIENTS qui contient des sous répertoires du type 1, 2, 9, 32, ,...60000.
Les sous-répertoires portent comme nom un numéro et tous les numéros ne se suivent pas, il y en a qui manquent. Cela part de 1 et cela va jusqu'à 60000.
Donc :
C:\CLIENTS\1
C:\CLIENTS\2
C:\CLIENTS\9
...
C:\CLIENTS\60000
A l'intérieur de ces sous-dossiers, j'ai une voire plusieurs pages HTML qui portent des noms différents à chaque fois, comme par exemple ALBERT DUPONT.html, MAURICE RAVEL.html etc.
Aucune logique dans les noms, c'est aléatoire :
C:\CLIENTS\3\ALBERT DUPONT.html
C:\CLIENTS\29\MAURICE RAVEL.html
...
A l'intérieur de ces pages HTML, il y a du code et notamment des lignes affichant un NOM et PRÉNOM, une société, une adresse, un code postal, une ville, un tel, un fax , un email et une adresse de site web.
Je souhaite créer une macro VBA capable de parcourir chacun des sous-répertoires du dossier parent C:\CLIENTS, et d'extraire dans chaque page HTML les informations qui m'intéressent et qui sont encadrées chaque fois par les mêmes balises, pour me les mettre dans un fichier Excel dans les bonnes colonnes NOM, PRÉNOM, SOCIETE, ADRESSE, CP, VILLE, TEL, FAX, EMAIL, WEB.
Les informations qui m'intéressent sont incluses entre <h1> et </a></dd>.
Je pense que c'est possible, j'ai commencé mais c'est une usine a gaz, la macro est très lente, ça plante souvent et j'ai des infos qui sautent. Bref, c'est la galère.
Une idée car je suis dessus depuis une semaine ?
Merci à vous tous.