# [Off] Y'a-t-il des connaisseurs en macro libreoffice?

## sebB

Bonjour,

Dans le cadre de mon boulot, je suis souvent amené à remplir des formulaires avec des données récurrentes.

La page internet est une sorte de tableau avec plusieurs champs a remplir de la forme:

A     B     C     D

E     F     G     H

...

Ce que j'aimerais faire afin de m'éviter à saisir ces champs manuellement et si cela est possible:

Créer un tableau libreoffice avec une macro qui me copie les infos dans les cellules pour les coller dans mes champs internet.

Pour cela il faudrait aussi que la macro copie les infos dans l'onglet courant ouvert.

Par ex si j'écris "maison" en A1 et "bleu" en A2 que ca me le colle respectivement dans les cases A et B du formulaire.

Pour compliquer la tache, sur cet ordi il y a libreoffice, internet explorer et firefox. Je ne peux installer aucun programme externe ni macro dans firefox.

L'idéal serait que cette macro fonctionne avec internet explorer. Mais si c'est pas possible je prends avec firefox.

Si quelqu'un peut me donner un début de macro, il aura toute ma gratitude.

Au fait cet ordi tourne sous windows.

Merci

----------

## xaviermiller

Hello,

Regarde si tu peux envoyer des séquences clavier. Dans ce cas, je ferais

- lire la cellule dans OO

- la copier dans le presse-papier

- envoyer "alt+tab"

- envoyer "ctrl+v"

- envoyer "tab"

- envoyer "alt+tab"

----------

## 324874

Salut Seb !

Le navigateur web permet également l'interaction avec des bases de données (BDD) - ou un espace de stockage - côté client. 

L'inconvénient est qu'il faut apprendre à utiliser ces bases de données.

Je ne peux seulement citer que deux références : IndexedDB (conçue pour être manipulée avec JavaScript) et Web Storage (DOM Storage) - (BDD ?).

Nouvelle édition pour corriger une faute typographique.Last edited by 324874 on Wed Jul 13, 2016 10:29 am; edited 1 time in total

----------

## sebB

@Xavier,

Je ne trouve pas de soluce pour capturer les sequences clavier et les coller dans les champs.

@feng

Comment je crée la BDD et l'importe dans les champs internet explorer?

Je vous parle de libreoffice car c'est l'une des seules applis que j'ai sur mon ordi du boulot.

Je vous parle de calc car c'est le 1er truc qui me vient tete. Mais s'il faut utiliser base ou autre chose ca ne me dérange pas.

Si on peut faire ca depuis internet directement pas de soucis.

Cet ordi étant bridé je ne peux installer aucun programme extérieur.

Un truc qui pourrait m'aider et me servir de base ce serait un exemple "tout simple".

Par ex comment je peux remplir les champs de login de https://forums.gentoo.org a l'aide d'une maccro/script/BDD.

Un peu comme l'achat d'une maison, une solution clés en main serait l'idéal   :Wink: 

----------

## 324874

 *Quote:*   

>  Un truc qui pourrait m'aider et me servir de base ce serait un exemple "tout simple". 

 

Je vais t'aider à trouver des informations pertinentes et accessibles. Le formulaire est réalisable avec HTML5 (Web Forms) et éventuellement CSS3.

Le plus difficile est l'intégration des données dans la page web (ou l'application web) et l'exploitation de l'espace de stockage (IndexedDB, Local Storage, etc).

Je pense que JavaScript peut générer dynamiquement les données de la page ou de l'application web en exploitant les fonctionnalités de l'espace de stockage choisi.

Xavier propose une solution simple et elle est sans doute efficace. La solution que je propose me paraît plus difficile à réaliser mais son intégration semble homogène et 

offre certainement davantage de possibilités.

Je pense que j'aurai intégré la solution (un exemple) dans le fil de discussion pour la fin de la semaine (vendredi ou samedi).

----------

## Syl20

Elle m'a l'air particulièrement mal foutue, l'application que tu utilises. Le plus simple serait de demander à ses développeurs d'ajouter l'import de données depuis un fichier .csv.

----------

## sebB

 *Syl20 wrote:*   

> Elle m'a l'air particulièrement mal foutue, l'application que tu utilises. Le plus simple serait de demander à ses développeurs d'ajouter l'import de données depuis un fichier .csv.

 

Grand méchant, ne critique pas l'administration!!!   :Wink: 

Et encore je vous ai pas parlé de nos profil qui se remette a zéro à chaque redémarrage de l'ordi.

Si tu veux ma page web ressemble a ça

image

Toutes les semaines je doit remplir les champs sur environ 200 lignes et seules quelques valeurs changent.

Mon idéal était donc de remplir un tableur une bonne fois pour toute, et chaque semaine changer seule les valeurs qui changent afin d'éviter de tout ressaisir et d'un simple clic tout balancer sur la page web pour la remplir.

J'avoue qu"en prog je pars de zéro donc je sais même pas si c'est possible.

----------

## Syl20

 *sebB wrote:*   

> Grand méchant, ne critique pas l'administration!!!   

 

Ayant déjà bossé pas mal de temps pour elle, je m'en octroie le droit. D'autorité, parce que, non mais.  :Laughing: 

La faute de frappe est d'origine ? La couleur du fond est... comment dire... Non, rien.  :Rolling Eyes: 

Bref, ne connaissant pas le monde meeeeeeerveilleux des macros xOffice, et si la solution la plus radicale (au sens premier du terme), à savoir l'ajout de fonctionnalités directement dans le code de ton application, n'est pas envisageable, la seule autre possibilité qui me vient à l'esprit est du genre bien dégueulasse :

1/ reverse engineering (analyse des requêtes GET et POST nécessaires pour remplir une ligne, et des réponses),

2/ écriture d'un script qui récupère les valeurs qui t'intéressent dans un fichier .csv, et qui fait les requêtes POST qui vont bien.

Pour le premier point, vive Firebug. Pour le deuxième, si tu es sous linux, tu as le choix des armes : bash (avec awk/sed/grep et curl), perl, python, php... Si tu es sous Windows, c'est la mémerde...

----------

## 324874

Encore un peu de patience ! Je m’échine au développement d'une solution (exploitation du web storage).

J'aurai souhaité savoir si les données du formulaire sont générées pour être envoyées sur un serveur ou si elles le sont pour être imprimées dans la page web.

Je pensais que la page web était générée localement ou du moins que l'on y avait un accès en écriture. 

La solution que je proposerais ne sera pas valable si l'on ne peut pas modifier le code de la page web.

Cdlt, feng.

----------

## sebB

 *Syl20 wrote:*   

> Pour le premier point, vive Firebug

 

Bin non, je peux pas installer d'extensions sous firefox et en plus mes applis sont optimiséees pour internet.

 *Slv20 wrote:*   

> Si tu es sous Windows, c'est la mémerde

 

Un bon windows 7 bridé.

 *Syl20 wrote:*   

> La faute de frappe est d'origine ? La couleur du fond est... comment dire... Non, rien.

 

Par soucis de copyright j'ai changé la couleur et les noms...

 *Syl20 wrote:*   

> Ayant déjà bossé pas mal de temps pour elle, je m'en octroie le droit. D'autorité

 

Et t'es fier des applis que t'as pondu et qui m'empèchent de bosser...?  :Razz: 

@feng: T'emmerde pas ta solution n'est pas envisageable. Ma seule possibilité est de partir d'un tableau office. Je bosse sur un intranet.

Bon les gars, quand vous franchirez la porte d'une administration, vous comprendrez maintenant pourquoi il y a la queue. Je peux pas remplir on formulaire et vous servir.

----------

## 324874

Bonsoir !

Je poste temporairement le code source "incomplet" d'un exemple de IndexedDB récupéré sur Mozilla Developer Network. 

Je pensais qu'on pouvait utiliser des éléments html (utilisation de balises) pour stocker des données dans IndexedDB.

Je ne connais pas HTML - CSS et JavaScript. Je me doute que je devrais connaître ces technologies donc j'ai commencé à les apprendre.

Le développement se présente comme suit. 

La structure du document (une application, en fait; pas une page web) est créée avec HTML, la mise en forme est réalisée avec CSS et la gestion

de IndexedDB grâce à JavaScript (il s'agit en fait d'une interface (API) JavaScript).

Le code source (est temporairement disponible sur Pastebin : ~6jours) des fichiers HTML, CSS et JavaScript.

main.html

styles.css

script.jsIl s'agit principalement d'un aperçu de ce que l'on peut obtenir avec IndexedDB. Je ne peux pas encore modifier le programme JavaScript ni expliquer comment utiliser IndexedDB.

J'ai ajouté quelques lignes de codes dans l'en-tête du fichier html pour rendre l'application "fonctionnelle".

```
...

<script type="text/javascript" src="script.js" ></script>

<link type="text/css" rel="stylesheet" href="styles.css">

...
```

Il faut enregistrer le code source des fichiers, chacun, dans un fichier séparé. Le fichier JavaScript doit s'appeler script.js et le fichier CSS, lui, styles.css

Il faut placer les trois fichiers dans un même répertoire.

Je fais mon possible pour essayer de comprendre IndexedDB et trouver une explication de son utilisation. Idéalement, j'aimerai développer une application personnalisée.

Je prévoirai selon le travail requis, si je pars de zéro, ou si je me base, sur le code source de l'exemple précédent.

Pour conclure, je ne pense pas qu'on trouve de tutoriel accessible, sans avoir de connaissances en programmation, et plus spécifiquement, en JavaScript, afin de pouvoir interagir avec IndexedDB. 

La connaissance de HTML et CSS s'avère aussi nécessaire, à cause de l'imbrication de HTML, CSS et JavaScript, pour la réalisation de page web (ou application web).

Cdlt, feng.

----------

