VBA Excel : page web et QueryTable
Résoluyg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Le bout de code suivant
' Copier la page web dans "Feuil2"
Sheets("Feuil2").Select
Cells.Clear
' ajouter une QueryTable
Set QT = ActiveSheet.QueryTables.Add(Connection:="URL;" & URL,
Destination:=Range("A1"))
' configurer la QueryTable...
With QT
.WebSelectionType = xlEntirePage '... pour sélectionner toute la page
.Refresh BackgroundQuery:=False '... pour rafraîchir les données et les coller dans la feuille
End With
' libérer l'objet QueryTable
Set QT = Nothing
......
copie une page web entière dans la Feuill2 à partir de A1 et il fonctionne de façon satisfaisante pour mes besoins. Cependant, certaines zones de la page web contiennent des indications de la forme 1-14 (par exemple) et sont importées dans les cellules Excel par une date du type janv-14 ... Est-il possible d'éviter cet écueils et retrouver 1-14 ?
Windows / Chrome 124.0.0.0
Windows / Chrome 124.0.0.0
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
Tu peux voir que tu as le même comportement si tu entres "1-14" à la main dans une cellule.
Pour éviter que Excel n'interprète les données, il faut préalablement mettre les cellules en format "Texte".
Cells.Clear Cells.NumberFormat = "@"-
-
-
Je pense qu'il y a un paramètre qui permet de préserver le format des cellules.
Ce serait plutôt un paramètre accessible via la destination, pas via la connexion.
Je suggère que tu testes à la main pour trouver ce paramètre, puis que tu automatises si nécessaire (le VBA pourrait simplement utiliser un paramètre existant).
-
-
Avec mon fichier html de test, cela fonctionne en mettant simplement en format texte.
Cells.Clear Cells.NumberFormat = "@" Set QT = ActiveSheet.QueryTables.Add(Connection:="URL;" & Url, _ Destination:=Range("A1")) ' configurer la QueryTable... With QT .WebSelectionType = xlEntirePage '... pour sélectionner toute la page '.PreserveFormatting = False '.WebDisableDateRecognition = False .Refresh BackgroundQuery:=False '... pour rafraîchir les données et les coller dans la feuilleun <br> 1-14 <br> trois
-