IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Interaction avec OpenOffice Calc


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut Interaction avec OpenOffice Calc
    Bonsoir à toutes et à tous,


    Je me permet de poster ce message pour avoir vos avis.
    Le mieux, je pense, c'est de vous expliquer mon (petit) projet pour que vos conseils soient les plus pertinents possible.


    Je souhaiterai développer un programme permettant de recueillir et de traiter des pesées successives.


    Je vais être plus précis.
    Dans le cadre de mon travail, je suis amené à faire des pesées successives via une balance.
    Cette balance, lorsqu'on valide une pesées, envoi simplement la valeur de la pesée, l'heure et la date.

    Jusqu'à présent on utilise un tableur OOCalc pour recevoir ces données.
    Le problème c'est qu'on est obligé de manipuler la souris ou le clavier pour passer à la ligne du "dessous" entre chaque pesée.


    Certes j'ai déjà changé la macro de la balance en lui disant, après avoir envoyer la date et l'heure, de simuler l'appui sur les touches [BAS][GAUCHE][GAUCHE].
    De cette façon on revient "automatiquement" à la ligne du dessous sans avoir à interagir avec souris ou clavier.
    Alors c'est sympa mais quand même bien boiteux comme solution et surtout très limitée: il s'avère que dans de nombreux cas il ne s'agit pas de peser la même chose successivement.


    J'entends par là que, par exemple, lorsqu'il s'agit de peser admettons des quantités de sucre successivement c'est très bien.
    Néanmoins j'ai besoin de faire ceci SUR LA MÊME LIGNE: une mesure de sucre et une mesure de farine!
    Et là, ma modification de macro devient complètement useless puisqu'il faut absolument l'intervention d'un peu de code pour un fonctionnement autonome.



    Qu'à cela ne tienne Etienne: j'ai fais une vrai macro OpenOffice BASIC pour faire ça.
    Alors ça marche. Sur ça pas trop de problème.
    (voici le principe: un listener, une "ligne tampon" sucre - farine. Quand je détecte, grâce au listener, l'appui de la touche [BAS] (la macro de la balance donc) je mets le focus sur la première cellule du tableau concernant la Farine si je viens de faire la mesure de Sucre, et si les deux mesures sont faites je recopie la ligne tampon plus bas dans mon document Calc et je remet le focus sur la mesure de Sucre, la ligne de recopie étant indexée sur le nombre de mesure faites...)

    Donc, disais-je, ma macro BASIC fonctionne mais elle n'est pas très utilisable par d'autres...
    En fait les autres utilisateurs que moi, je ne saurais expliquer pourquoi, ne peuvent pas s’empêcher de cliquer partout, donc de déplacer le focus, de toucher le clavier, donc encore une fois de changer le focus....
    Bref ils foutent le merdier et ma macro n'est pas fonctionnelle!



    Mon idée présente est donc de faire un programme à part entière qui recueillerait les valeurs des pesées et irait les recopier dans un fichier OOo-Calc de façon transparente pour les utilisateurs.
    De cette façon plus, ou beaucoup moins, de soucis avec les utilisateurs (puisqu'ils n'auraient, idéalement, pas l'impression d'être devant un tableur).


    Partant de ce constat et pour résumer je vais tenter de mettre en place un programme permettant les choses suivantes:
    - Choisir entre des mesures successives(seulement du sucre pour suivre mon exemple) ou alternées (un mesure de sucre et une de farine en face l'une de l'autre)
    - Recopier les pesées dans un fichier OpenOffice CALC à un emplacement donné selon le type de pesée faite
    - Enregistrer le fichier OOo-Calc



    Mes premières questions sont les suivantes:
    - Estce que ce projet vous semble viable ?
    - Je sais que la manipulation d'Excel est facilement faisable mais est-ce que l’interaction avec OpenOffice est possible?
    - Et pour finir mais sûrement la plus importante des questions: est-ce que VB6 vous semble le langage le plus adapté? Si non, le quel vous semblerai plus "efficace"?




    J'espère avoir été clair, faute d'avoir été concis!
    J'ai vu en faisant mes recherches qu'il semblerait possible d'interagir avec OpenOffice mais je n'ai pas non plus trouvé énormément de personnes en parlant...
    J'espère aussi que vous allez pouvoir m'aiguiller dans mon projet.


    Merci d'avoir pris le temps de me lire et merci d'avance pour vos conseils avisés.


    Cordialement
    ~~ La Praline~~
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 155
    Points
    17 155
    Par défaut
    Salut

    Cette balance, lorsqu'on valide une pesée, envoi simplement la valeur de la pesée, l'heure et la date.
    physiquement/ port parallèle, série, USB, LAN ....



    Est ce que ce projet vous semble viable ?
    pour l'instant NON



    Je sais que la manipulation d'Excel est facilement faisable mais est-ce que l’interaction avec OpenOffice est possible?
    Les meilleurs cours et tutoriels sur AOO/LibO, particulièrement Intéractions avec d'autres applications (OBasic), IV-B. Ajouter un enregistrement dans une table OOo



    Et pour finir mais sûrement la plus importante des questions: est-ce que VB6 vous semble le langage le plus adapté?
    Pourquoi pas mais, c'est quand même un langage qui se fait un peu vieux, le programme que tu envisages ne sera peut être pas exploitable encore bien des années.



    Si non, le quel vous semblerai plus "efficace"?
    Chacun te répondra le langage qu'il pratique tous les jours, pour ma part, la récupération des données provenant de la balance limite ce langage, VBScript ne sait pas faire sinon a passer peut être par JScript/VBScript + Win32 API: DynamicWrapperX, ou encore si c'est du LAN cela doit être possible avec CreateObject("InternetExplorer.Application") tout cela dans un HTA.
    Autre langage plus moderne , La version Express (gratuite) de Visual Studio 2013, (je m'y mettrai quand je serai à la retraite )

    A+
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    physiquement/ port parallèle, série, USB, LAN ....
    Aucun intérêt pour moi
    Il s'agit d'un port série mais à vrai dire si je m'en cogne c'est qu'il y a un logiciel fourni avec ladite balance.
    Il se charge de la communication.
    Lorsqu'un utilisateur appui sur le bouton "Envoyer Mesure", le logiciel déclenche une macro.
    Laquelle est:
    %d/%m/%A[RIGHT]%H:%m:%s[RIGHT]la_pesée[DOWN][LEFT][LEFT]

    En traduction après l'appui ça envoi la date, ça va une case à droite (sous un tableur), ça écrit l'heure, ça va une case une droite, ça écrit la pesée, ça descend d'une case et ça va deux cases sur la gauche pour revenir en dessous de la case de départ.

    Ça c'est en dur. C'est à dire que à l'heure actuelle je ne peut pas influer sur cette "macro balance" car la plupart des mesures sont faites selon ce format et ça convient bien.
    Ce que j'aimerai donc, c'est traiter cette arrivé de données pour les écrire où je veux sur un tableur (ne plus être dépendant des simulation d'appui de touche gauche, droite, etc...)




    [QUOTE=ProgElecT;7798347
    pour l'instant NON :aie[/QUOTE]

    Heu.... mon pote Homer dirait: D'OH !

    Beeeeeelle !

    Citation Envoyé par ProgElecT Voir le message
    Pourquoi pas mais, c'est quand même un langage qui se fait un peu vieux, le programme que tu envisages ne sera peut être pas exploitable encore bien des années.
    C'est justemeznt ce que je me disais...
    Ça fait donc 7 ans que je n'ai pas mis les mains dans le code et je me souviens déjà qu'à l'époque il y avait un gros flux migrateur vers .NET c'est pour ça que j'ai posé la question!


    Citation Envoyé par ProgElecT Voir le message
    Chacun te répondra le langage qu'il pratique tous les jours, pour ma part, la récupération des données provenant de la balance limite ce langage, VBScript ne sait pas faire sinon a passer peut être par JScript/VBScript + Win32 API: DynamicWrapperX, ou encore si c'est du LAN cela doit être possible avec CreateObject("InternetExplorer.Application") tout cela dans un HTA.
    Autre langage plus moderne , La version Express (gratuite) de Visual Studio 2013, (je m'y mettrai quand je serai à la retraite )
    C'est sûr que chacun va y aller de sa petite pierre.
    Après j'ai tenté la question à 100 balles, des fois qu'un langage dédié à la manipulation de tableur ait vu le jour!

    Mais dans tout ça ce qui me fait rire c'est que j'ai eu le même résonnement que toi dans le sens où j'ai installé Visual Express!
    Je connais le langage objet, disons assez pour comprendre les bases du .NET.
    J'ai déjà testé ça hier soir

    Pour le moment j'arrive à ouvrir un fichier Excel, le modifier(via une TextBox), le sauvegarder!
    Grosso modo je suis sur la bonne voix on dirait...
    Mais je continue d'explorer toutes les pistes qui s'offrent à moi!


    En tout cas merci d'avoir prit le temps de me répondre
    A très bientôt!

    ~~La Praline ~~
    ..........................."Membre Chevronné"... non "Chaviré" serait plus juste !!!
    ...............................Avant toute chose => Règles, FAQ, Tuto, Google...
    ...................................................................
    Rock'n Roll

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour,
    Citation Envoyé par ProgElecT Voir le message
    Salut
    Pourquoi pas mais, c'est quand même un langage qui se fait un peu vieux, le programme que tu envisages ne sera peut être pas exploitable encore bien des années.
    Il est difficile de dire le contraire puisque vb6 ne va plus évoluer mais il y a fort à parier qu'il y aura de l'eau à couler sous les ponts
    avant que les programmes VB6 ne soient plus exploitables.

    Pour exemple la technologie DDE qui date de la fin des années 80 est toujours utilisée pour l'exploitation de flux de données (cours de bourse).
    Je vois mal Microsoft se tirer une balle dans le pied en abandonnant le support de la technologie DCOM/ActiveX
    et notamment en regard du nombre de programme dont au moins une partie a été développée en VB6.
    (Pour rappel, il y a 10 ans, plus de 5 millions d'utilisateurs de VB5/6 et c'est sans compter VBA et VBS qui sont directement lié à cette technologie)

    Je suis prêt à prendre le pari que dans 20 ans, un programme VB6 continuera de tourner sous Windows.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 243
    Points : 328
    Points
    328
    Par défaut
    Salut,

    Je ne sais pas si VB.Net/C# peuvent attaquer OpenOffice (s'il est compatible COM, il n'y a pas de raison que cela soit impossible, mais c'est cela serait pour piloter OO depuis l'exterieur pas comme langage de macro interne à une feuille si j'ai bien compris ce que tu veut faire).

    Okazou, il me semble que python est livre en standard comme langage de macro avec OpenOffice 4.x (et via un adaptateur avec les version 2.x).
    voici un lien qui te donnera pas mal de pistes je pense.

    Sans prêcher pour l'un ou pour l'autre, Python est facile à apprendre et beaucoup plus puissant que VB6, cela ne devrait pas te poser de problème.

    Bon courage


    @ DarkVader : Bien d'accord avec toi mais le problème va se poser pour les librairies/ocx tierces avant malheureusement : Nous avons eu le cas d'un OCX pour lequel il a fallu trouver une méthode de contournement pour pouvoir l'installer en dev. sur Win7 (pas de soucis en déploiement par contre et c'est tant mieux ).

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par 250rgv Voir le message
    @ DarkVader : Bien d'accord avec toi mais le problème va se poser pour les librairies/ocx tierces avant malheureusement : Nous avons eu le cas d'un OCX pour lequel il a fallu trouver une méthode de contournement pour pouvoir l'installer en dev. sur Win7 (pas de soucis en déploiement par contre et c'est tant mieux ).
    Le problème des librairies tierces non fonctionelles est liée aux développeurs des librairies incriminées -
    le travail de sagouin est en aval pas en amont
    Plus sérieusement c'est un problème général qui se produit lors d'utilisation de librairies imbriquées 'en cascade' -
    dès qu'un maillon n'est plus compatible, c'est toute la chaine qui casse, quelque soit le langage utilisé.

    Sinon pour répondre à la question, il semblerait que OpenOffice supporte un pilotage par Com
    voir : https://forum.openoffice.org/fr/foru...hp?f=15&t=6347
    il suffira donc d'adapter les exemples fournis pour une utilisation directe depuis vb6

Discussions similaires

  1. Lire 2crire OpenOffice calc avec TOS 5.5
    Par Pozzo dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 14/03/2015, 00h08
  2. [OpenOffice][Tableur] Petit problème avec un classeur sur Openoffice calc
    Par guil57 dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 02/06/2009, 07h39
  3. [ant]: interaction avec le manager de tomcat
    Par sleepy2002 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 07/10/2004, 16h02
  4. Réponses: 4
    Dernier message: 17/05/2004, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo