Bonjour,
* Pour l'erreur '.send' => je ne sais pas (proxy, peut être, c'est possible?).
* Pour la variable T :
-- cette variable va servir à stocker des info dont on ne connait pas à priori le volume. On la déclare au début avec un 'Dim T as variant' qui en fait n'est pas obligatoire puisque l'instruction ReDim suffit en Vba.
Mais c'est une question d'habitude : pour 'faire propre' la règle est de déclarer toutes les variables avant les lignes de codes (sans que ça soit une obligation strictement fonctionnelle en Vba, qui est un langage assez permissif pour sa syntaxe, contrairement à d'autres. Pour rappel le B de VBa c'est 'Basic' ...)
Dernier point : le type 'Variant' est un type 'fourre-tout' en Vba.
-- on va donc dimensionner T au fur et à mesure de la lecture des données du site => Redim Preserve ...
A noter : ici le 10 de 'T(1 to 10 ...' est empirique.
-- La particularité des variables tableaux en Vba est qu'on ne peut redimensionner uniquement que la 2ème dimension. On va donc remplir le tableau en le 'couchant' (les colonnes en lignes, les lignes en colonnes), puis à la fin du traitement on le remet droit (lignes en lignes, colonnes en colonnes) avec la fonction 'Transpose'.
-- Mais pourquoi réécrire la fonction 'Transpose' alors qu'elle est déjà disponible sous Vba (Application.Transpose) ? => parce que cette 'Application.Transpose' est limitée, Microsoft a oublié de la réécrire proprement quand les feuilles ont eu plus de 65536 lignes.
* Pour les Function et les Sub à argument(s) => une 'bonne pratique' en programmation est de scinder son code en plusieurs entités, chacune effectuant une tâche (ou un petit nb de tâches). De cette façon :
-- le code gagne en lisibilité,
-- pour les gros projets, c'est plus facile à modifier et à débuguer (et on regroupe les Sub et Function dans des modules distincts par 'familles'),
-- et certaines tâches peuvent être réutilisées telles quelles soit dans la même appli (ici la 'sub Lire' sert 2 fois), soit pour d'autres besoins ailleurs. Ainsi mes Function HTML et Transpose viennent de ma 'bibliothèque' de codes que je réutilise selon mes appli.
-- on gagne donc en temps de développement car ça évite de réinventer la roue à chaque fois (juste un copier/coller)