[Résolu][Calc] Import HTML dans une feuille

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

[Résolu][Calc] Import HTML dans une feuille

Message par office29 »

Bonjour,

Je débute avec les macros office. J'ai trouvé sur ce forum de l'aide pour mon petit projet en copiant ici et là des bouts de codes dont le suivant :

Code : Tout sélectionner

Sub ExoCopierFeuilleParLien
dim PysFeuille as object
dim PysURL as string, PysFilter as string, PysOpt as string
dim PysMode as integer

'La feuille qu'on veut remplacer
PysFeuille = thisComponent.sheets().getByName("")

'Paramètres nécessaires à la copie
PysFilter = "Text - txt - csv (StarCalc)"
PysOpt = ""		'Adapter en fonction du fichier CSV
PysMode = com.sun.star.sheet.SheetLinkMode.NORMAL

'Insertion de la feuille par "lien"
' PysFeuille.link(PysURL, "", PysFilter, PysOpt, PysMode)
PysFeuille.link("https://forum.openoffice.org/fr/forum/viewforum.php?f=1", "", PysFilter, PysOpt, PysMode)

'Déconnection du lien
PysFeuille.setLinkSheetName("") 
PysFeuille.LinkDisplayName
PysFeuille.LinkUrl=""
PysFeuille.setLinkMode(com.sun.star.sheet.SheetLinkMode.NONE) 

End Sub 
J'avais récupéré le fichier .ods, il fonctionne bien.
J'ai recopié le code pour le mettre dans mes macros, et l'ai adapté (changement d'Url et nom de feuille), et j'obtiens ce message d'erreur en pointant la ligne PysFeuille.link(...) :
Erreur d'exécution BASIC.
Une exception s'est produite :
Type: com.sun.star.container.NoSuchElementException
Message: .
J'ai créé une feuille nommée ARemplacer dans mon classeur, ainsi je peux lancer cette macro depuis le document d'origine de la macro, depuis un nouveau document ou depuis mon classeur. La macro fonctionne avec le document d'origine, avec un document nouvellement créé mais pas avec mon classeur.
J'ai enregistré mon classeur sous un autre nom de fichier, j'ai supprimé les feuilles une part une pour voir si la macro fonctionnerai, j'en suis arrivé à tout supprimer, j'ai toujours le même message d'erreur.

Malgré le message d'erreur, des fois je fini pas obtenir quand même le document sur ma feuille, mais après impossible de fermer le document car le lien n'est pas fermé.


Avez vous une idée de l'origine du problème ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par office29 le 14 juin 2016 17:05, modifié 1 fois.
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12878
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: [Calc] Macro qui fonctionne partout, sauf là

Message par Bidouille »

Bonjour,

"Macro qui ne fonctionne pas" dans la section Macros n'est pas des plus pertinents.
Commencez par nous dire ce que vous cherchez à faire.
Puis mettez un titre en rapport avec cette problématique.
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Macro qui fonctionne partout, sauf là

Message par office29 »

Bonjour,

Oui, "Macro qui ne fonctionne pas" n'est généralement pas un titre pertinent, mais là c'est le problème, cette macro qui fonctionne dans la plus part des documents ne veut pas fonctionner dans mon classeur.
Je cherche à récupérer une page sur Internet, l'importer dans une feuille de mon classeur pour y retrouver une valeur.
Le nom de la page Internet est dynamique, et j'en ai plusieurs à ouvrir à la suite.

La macro de PYS fait ça très bien, depuis un autre document. Dois-je quand même changer le titre pour dire que je cherche à importer une page dans un classeur ?
La modération vous a écrit: Pourquoi faut-il modifier le titre d'une question lorsqu'on vous le demande ?
Ce n'est pas pour vous ennuyer. Il s'agit de penser à ceux qui chercheront sur ce même problème.
Ils risquent de ne pas s'arrêter sur ce fil car il ne reflète pas la problématique exposée.
C'est donc dans un souci de qualité afin d'avoir des titres clair et explicite.
Nous l'avons donc fait à votre place mais la prochaine fois, veuillez le faire par vous-même.
Merci de votre collaboration et d'éviter le pinaillage.

Pour contourner le problème je pourrais peut-être refaire un classeur et recopier toutes mes feuilles, mais il y a pas mal de mise en page, et pis j'aimerai comprendre...

Merci pour l'attention porté à ce problème.
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] Macro qui fonctionne partout, sauf là

Message par Hubert Lambert »

Bonjour,

Je viens de tester le code fourni plus haut, qui fonctionne parfaitement.
Ton message semble indiquer que la feuille à remplacer n'existe pas. Peux-tu le vérifier encore une fois ?
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import de CSV dans une feuille

Message par office29 »

Bonjour,

Oui, le code fonctionne dans un document nouveau.
Avez-vous testé le fichier joint ? Est-ce que celui-ci fonctionne chez vous sous Libre Office/Linux ?

Merci pour votre retour
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Calc] Macro qui fonctionne partout, sauf là

Message par Churay »

Bonjour
office29 a écrit :cette macro qui fonctionne dans la plus part des documents ne veut pas fonctionner dans mon classeur
Si tu mettais, ton classeur complet et un fichier qui ressemble à ce que tu veux récupérer (et qui foire), ça serait plus simple, non ?
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import de CSV dans une feuille

Message par office29 »

Bonjour,

Le fichier joint au premier post n'est pas le dossier complet (puisqu'en cherchant l'origine du problème j'en suis venu à tout supprimé), mais il permet encore de reproduire le problème. Chez moi, ce fichier foire. En lançant la macro dans le classeur joint ça marche chez vous ?
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] Import de CSV dans une feuille

Message par Hubert Lambert »

Je reproduis en effet avec le fichier fourni.
Le programme butte sur la variable PysMode.
La constante com.sun.star.sheet.SheetLinkMode.NORMAL est reconnue de manière générale (avec une instruction "print" par exemple), mais est refusée par la méthode link de l'objet PysFeuille... :?:
Dernière modification par Hubert Lambert le 14 juin 2016 10:43, modifié 1 fois.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import de CSV dans une feuille

Message par office29 »

Merci, ça ne vient donc pas de mon environnement, mais c'est lié au classeur.
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26222
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import de CSV dans une feuille

Message par Dude »

Salut,
office29 a écrit :mais c'est lié au classeur.
Reprends ton code :

Code : Tout sélectionner

PysFeuille.link("https://forum.openoffice.org/fr/forum/viewforum.php?f=1", "", PysFilter, PysOpt, PysMode)
Où vois-tu un CSV stocké à cette URL ?
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import de CSV dans une feuille

Message par office29 »

Bonjour,

J'avais l'impression que cela n'a pas d'importance puisque la macro marche dans de nombreux documents en chargeant le code malgré le type CSV.
En mettant HTML dans le filtre, ça plante toujours pour ce classeur.
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26222
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import de CSV dans une feuille

Message par Dude »

Sous AOO, cela fonctionne et le contenu de la page du forum s'affiche :
_no_problemo.png
Mais bon, je ne vois pas l'intérêt de charger du HTML dans un tableur.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] Import de CSV dans une feuille

Message par Hubert Lambert »

J'ai pour ma part essayé avec un fichier csv en local, et cela plante effectivement à partir du fichier fourni.
On dirait bien une forme de "corruption passive" :) .
Juste une question : on trouve des traces de fichier xls et de polices Android. Est-ce normal ?
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import de CSV dans une feuille

Message par office29 »

Ça marche sous AOO, intéressant. Merci pour ce test.

Il s'agissait d'un document issu d'une autre suite avec des macros qui ne fonctionnent que pour ce programme (dit propriétaire). Je l'ai repris pour le porter sur Open/Libre Office.
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26222
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import de CSV dans une feuille

Message par Dude »

A ce propos, la propiété link n'existe pas.
A modifier pour LinkURL.
office29 a écrit :Je cherche à récupérer une page sur Internet, l'importer dans une feuille de mon classeur pour y retrouver une valeur.
Titre à modifier pour [Calc] Import HTML dans une feuille
Et dans ce cas, il faut plutôt utiliser la propriété AreaLinks du classeur.
Avatar de l’utilisateur
ThierryT
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 467
Inscription : 10 nov. 2012 17:05

Re: [Calc] Import de CSV dans une feuille

Message par ThierryT »

Par contre, la méthode link existe bien.
Capture.PNG
LibreOffice 6.1.3.2 x64 / AOO 4.1.5 (x86) sous Windows 8.1 (x64)
Java 8.x (x64 et x86), Firefox, Thunderbird,....

“Celui qui aime à apprendre est bien près du savoir.” (Confusius)
Comment baliser Résolu
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import HTML dans une feuille

Message par office29 »

Ça ne "marche pas" avec LinkURL, il ne se passe rien, comme si ça n'existait pas. J'ai essayé avec linkURL (parce que j'ai lu que le premier verbe doit commencer par une minuscule, je ne sais pas si cela s'applique ici), mais c'est pas mieux.

Pour AreaLinks, une recherche m'amène ici https://forum.openoffice.org/fr/forum/v ... ks#p263671 où tu recommandes cette macro https://forum.openoffice.org/fr/forum/v ... ml#p117366 que j'ai essayé sur le fichier LOvide, il ne se passe rien. Le code est obsolète ?
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26222
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import HTML dans une feuille

Message par Dude »

La routine ci-après permet d'insérer dans la 1ere feuille d'un classeur, le contenu de la page d'index du forum.

Code : Tout sélectionner

Sub ImportHTML
    Dim oCell as new com.sun.star.table.CellAddress
    With oCell
       .Sheet = 0
       .Row = 0
       .Column = 0
    End With
    sUrl = "https://forum.openoffice.org/fr/forum/viewforum.php?f=1"
    sSource = "HTML_all"
    sFiltre = "calc_HTML_WebQuery"
    sOption = "0 0"
    oDoc = ThisComponent
    oLiens = oDoc.AreaLinks
    If oLiens.Count = 0 Then 
        oLiens.insertAtPosition(oCell, sUrl, sSource, sFiltre, sOption)
        oLien = oLiens.getByIndex(0)
        oLien.RefreshDelay = 60
        oLien.RefreshPeriod = 60
    Endif
End Sub
Le contenu est ensuite actualisé toutes les 60 sec.
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Calc] Import HTML dans une feuille

Message par martinbrait »

Bonjour Dude !

Merci pour ce code.
Sous Libre-Office, ça ne crée pas d'erreur
et pourtant ça ne génère aucun contenu dans ma
feuille de classeur active "Feuille1". :(
Quand l'actualisation est lancée, chaque minute, il n'y a pas moyen de l'arrêter non plus.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17220
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Calc] Import HTML dans une feuille

Message par jeanmimi »

Bonjour,
Avec ma configuration actuelle, la page "HTML_all" se télécharge bien après quelques secondes d'attente.
La Macro est une alternative à ce qui est décrit ici :
https://wiki.documentfoundation.org/Faq/Calc/113/fr
ou là :
https://wiki.openoffice.org/wiki/FR/FAQ/Calc/113
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26222
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import HTML dans une feuille

Message par Dude »

martinbrait a écrit :Sous Libre-Office, ça ne crée pas d'erreur
et pourtant ça ne génère aucun contenu dans ma
feuille de classeur active "Feuille1". :(
Et avec autant de messages à ton compteur, tu ne sais toujours pas qu'il ne faut pas polluer la question de quelqu'un d'autre avec ton propre problème :twisted:
Avatar de l’utilisateur
ThierryT
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 467
Inscription : 10 nov. 2012 17:05

Re: [Calc] Import HTML dans une feuille

Message par ThierryT »

LibreOffice 6.1.3.2 x64 / AOO 4.1.5 (x86) sous Windows 8.1 (x64)
Java 8.x (x64 et x86), Firefox, Thunderbird,....

“Celui qui aime à apprendre est bien près du savoir.” (Confusius)
Comment baliser Résolu
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import HTML dans une feuille

Message par office29 »

Merci Dude, cette nouvelle macro ne fonctionne pas non plus dans mon classeur.
Je suis en train de voir pour installer AOO, mais c'est pas simple quand on est sous Linux :(
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Calc] Import HTML dans une feuille

Message par Churay »

Bonjour
ThierryT a écrit :mais c'est pas simple quand on est sous Linux
Tu es sous Mint :
  •  la distrib Mint est dérivée de Ubuntu
    • les tutos Ubuntu devraient aider... :wink:
Voir les tutos de Papayes ici : https://forum.openoffice.org/fr/forum/v ... m.php?f=41
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import HTML dans une feuille

Message par office29 »

Oui j'avais déjà vu le tutoriel, justement je ne comprends pas pourquoi il ne "suffit" pas d'installer depuis un paquet. En plus là, il y a des conflits entre AOO et LibO à gérer. Et c'est pareil pour d'autres distributions. Je profite de tester ce classeur sur des LiveCD, pour Mint 18, même problème qu'avec la 17.3 actuelle. Manjaro, même erreur, mais peut-être qu'il sera plus facile d'installer AOO dessus.

Cela dit, la reproduction du problème sous plusieurs environnements ne l'explique pas. LibO ne serait plus aussi compatible qu'on le pensait avec AOO ?
Libre Office 5.0.3.2
Linux Mint 17.3
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import HTML dans une feuille

Message par office29 »

Après installation de Linux Manjaro sur une VirtualBox, j'y ai installé AOO 4.2.1, qui me retourne la même erreur que LibO quand je veux exécuter la macro sur le classeur.
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26222
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import HTML dans une feuille

Message par Dude »

office29 a écrit :j'y ai installé AOO 4.2.1
Cette version n'existe pas.

Aucun problème d'exécution sous Debian 8 :
_no_problemo.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import HTML dans une feuille

Message par office29 »

Correction, c'est la version 4.1.2.

Oui, la macro fonctionne correctement partout, si on la met dans un nouveau document. Le problème se produit lorsqu'on la lance depuis le classeur joint au premier fil (LOvide.ods). Quelle est la particularité de ce classeur qui fait que l'on obtient le message d'erreur ?
Basicruntimeerror.png
Basicruntimeerror2.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 5.0.3.2
Linux Mint 17.3
office29
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 13 juin 2016 15:09

Re: [Calc] Import HTML dans une feuille

Message par office29 »

J'ai été étonné de voir la ligne de la macro de PYS surlignée pour le second test, j'en ai fait d'autres. C'est à cause de l'indentation qui se met lors du "copier/coller" que l'erreur se produit, si on remet bien les Sub et End en début de ligne, la seconde macro fonctionne sans erreur sur AOO, reste à tester comme ça sur LibO...

Ça marche sous LibO de la Manjaro, mais pas sous Mint, j'ai toujours le message d'erreur...
Insertionimpossible.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 5.0.3.2
Linux Mint 17.3
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26222
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import HTML dans une feuille

Message par Dude »

Je commencerai par voir du côté du JRE.
Ensuite suivant le temps de réponse du serveur web, il est possible d'avoir des erreurs.

Mais bon, on en revient encore à :
Dès le début, Dude a écrit :Mais bon, je ne vois pas l'intérêt de charger du HTML dans un tableur.