Programmation "OpenOffice"

Bonjour,
N'étant pas un as des applications je m'adresse donc aux connaisseurs.
question
j'utilise Open office 4.1.3 je désire lorsque la valeur est "0" (zéro) dans la cellule D2 l'heure de la machine soit inscrite dans la valeur de la cellule B5
Merci de vos aides
cordialement
RG

14 réponses

  1. Bonjour,

    En B5 :
    =SI(D2=0;MAINTENANT())
    Pensez à formater B5 au format horaire voulu.

    Cdt
    2
    1. Je précise que je ne suis pas calé en macro pour Open ou LibreOffice ! mais comme la proposition est relativement simple, voici un exemple à étudier : https://cjoint.com/c/JLxozePWUbA

      Il faut accepter l'exécution des macros à l'ouverture du fichier. Il contient :
      - une procédure ( Sub EnrgistreHeure ) associée au bouton présent dans le feuille. On doit donc déclencher l'enregistrement de l'heure manuellement lors de l'appui sur ce fameux bouton : on met l'heure en B5 si D1=0 ET si B5 est vide ; Si D1<>0, B5 est vidé.
      - une fonction ( Function MonHeure(x) ) que l'on peut inscrire comme une formule dans n'importe quelle cellule cible en lui passant comme paramètre le nom de la cellule qui déclenchera son fonctionnement. Voir l'exemple en B6 =MONHEURE(D1)

      PS : écrit sous LibreOffice 7 mais ça devrait marcher avec OpenOffice
      1
      1. Bonsoir,

        une proposition ici : https://cjoint.com/c/JLAspjk3ISA

        A savoir que les classeurs avec macro de Excel ne sont pas utilisables (sauf exception) dans OpenOffice et vice-versa.
        1
        1. Merci ça fonctionne mais un problème arrive lorsque je donne une valeur numérique dans une autre cellule de la feuille, l'heure en B5 change en "maintenant" elle doit restée à l'heure initiale
          pourquoi cette correspondance, comment l'éviter?
          cordialement
          0
          1. MAINTENANT() donne l'heure à l'instant. Or, par défaut, Excel ou Calc recalcule les formules à chaque changement d'où la réactualisation de l'heure.
            Pour maitriser cela, il faudrait désactiver la réactualisation, ce qui est peu souhaitable ou programmer une macro.

            EDIT :
            Je n'utilise pas OpenOffice mais dans libreOffice on peut transformer manuellement une formule en sa valeur : en somme un copier-coller sur place de la valeur affichée par une formule. On doit pouvoir faire pareil dans OpenOffice : Données > Calculer > Formule en valeur.
            Ce n'est évidemment pas concevable si c'est à faire sur un grand nombre de cellules!
            0
          2. @Utilisateur anonymeLa solution à EDIT ne fonctionne pas. Comme c'est impossible de fixer la valeur d'origine, la solution d'une macro s'impose mais là....ce n'est plus possible avec mes petites compétentes . Si vous avez une aide, je suis preneur sinon j'abandonne mon projet
            merci à tous
            0
        2. Bonjour,
          De retour !! en effet l'application fonctionne. Je vais abandonné mon projet et repartir avec un fichier qui fonctionne sous Excel. Comme je désire le partager il faudrait que libre office (portable) puisse être utilisé
          la conversion ne fonctionne pas
          la solution ?
          merci de ton attention
          RG
          0
          1. l'exemple fonctionne si ouvert avec Excel. Si je l'ouvre avec libre office et, ayant accepté les macros (outil- option- chargement/enregistrement- propriété VBA "coché" Cde exécutable) ça ne marche pas
            j'ai lu sur le net que "office" acceptait certaines macros de Excel même si toutes ne sont pas compatibles n'y a t-il pas une solution pour faire un premier pas et corriger au fil les incompatibilités
            Si rien n'est possible il faudra que j'abandonne l'idée d'aider vers ceux qui n'ont pas excel
            merci RG
            0
            1. Bonjour,

              Certaines macros sont acceptées mais les API étant totalement différentes, les macros événementielles d'Excel ne fonctionnent pas dans Libre Office et vice-versa. A ma connaissance, il n'y a pas de compatibilité possible dans ce domaine.
              0
          2. Bonjour,
            évolution !! J'ai chargé libre office 7.04
            Le fichier primitif avec des macros est sous Excel. "Office" l'ouvre et les macros fonctionnent partiellement. Celles qui bug le message suivant apparaît
            Erreur d'exécution BASIC.
            '423'
            Sort
            ActiveWorkbook.Worksheets("course - CHRONO").Sort.SortFields.Clear
            Comment corriger ce point ??
            merci à tous
            cordialement
            0
            1. Joint le fichier via un site de partage
              0
          3. Oui mais avec libre office 7. il est proche des capacités que procure le fichier identique sous Excel
            0
            1. Ce fichier est au format xls, c'est-à-dire un vieux format Microsoft Excel : s'il est illisible avec Excel, c'est qu'il est corrompu.
              Le format Libre Office Calc est odt :
              - Pourquoi utiliser un format xls si ce fichier ne doit pas être utilisé avec Excel ?
              - Pourquoi écrire des macro VBA alors que ce n'est pas le bon langage pour Calc ?
              Si ce fichier a vocation a être utilisé avec Excel et avec Calc, la première chose à faire c'est de le rendre fonctionnel avec Excel. Il faudrait aussi utiliser un format plus récent xlsm ou xlsb.
              S'il ne sera pas utilisé avec Excel, abandonne le VBA au profit du LO Basic et utilises un format Calc (odt).
              0
            2. @Patrice33740Le format Libre Office Calc est odt
              Le format Calc est .ods
              0
          4. initialement, c'est un fichier récupéré. Il marche très bien sous excel xls. Après "ouvrir avec" Libre office Calc, je l'ai enregistré (excel 97-2003). C'est le document du lien transmis avec obligation de l "'ouvrir avec" Office
            Ouvert, bien des fonctions sont utilisables je cherche donc à résoudre les quelques erreurs
            Si j'enregistre au format "ODF" plus rien ne marche
            Si tu as une solution simple je suis preneur
            mes remerciements
            RG14
            0
            1. « Il marche très bien sous excel xls » Eh bien NON, pas le fichier que tu as publié au post 13, il est illisible avec Excel, que ce soit Excel 2003, Excel 2007 ou Excel 2016 !
              0
          5. ne cherche pas à l'ouvrir avec Excel
            fait
            -ouvrir avec
            choisir libre office
            le fichier est une extraction de lm'initiale Excel pourquoi la présentation Excel? même s'il en a les bases.
            Ce que je recherche c'est de pouvoir l'utiliser entièrement avec son ouverture Libre Office
            0
            1. Un fichier au format xls doit pouvoir s'ouvrir avec Excel : c'est format propriétaire de Microsoft.
              Quand ça ne fonctionne pas, c'est que le fichier présente un problème, ne respecte pas le format..

              Il faut donc commencer par résoudre ce problème avant toute autre chose !
              Travailler sur un fichier corrompu est forcement voué à l’échec !
              0
          6. alors comment résoudre pour obtenir le fichier EXCEL sans problème si la source st corrompue
            0
            1. C'est toi qui est parti d'un source saine (de RoMa_31) pour la transformer en fichier corrompu !
              Reprends chaque étape (avec Excel) pour déterminer quand la corruption apparaît et ce qui la cause (apparemment Libre Office).
              0
          7. Bonjour,
            Je n'ai pas repris les bases proposées. Il fallait tour réécrire les macros. Ce n'est plus dans mes compétences..là c'est trop!
            Le 1er fichier transmis n'est pas l'original Excel
            voici (sur un nouveau lien) celui qui fonctionne très bien depuis des années
            https://www.cjoint.com/c/JLFoCicO1qO
            C'est lui que je désire transmettre à ceux qui n'ont pas excel mais libreoffice avec un fonctionnement sous ce tableur (calc)
            merci et Bonne Année!!
            0
            1. Bonjour,

              Je comprends que ça ne fonctionne pas sous Libre Office, les macros Excel existantes sont à mon avis très mal écrites : variables ni déclarées ni typées, utilisation abusive de Select, de la syntaxe Evaluate abrégée, de parentalités et de propriétés implicites, ..., Nombreux modules vides, aucune organisation du code.

              Pour avoir un petit espoir que ce VBA fonctionne sous Libre Office il faudrait commencer par ré-écrire le code VBA proprement, mais je pense que ça ne suffira pas. Par contre ça simplifiera grandement la traduction vers le Basic libre office.

              Pour être sur que ça fonctionne correctement sous Libre Office il faut convertit le fichier sans aucune macro au format Calc (odt) et réécrire toutes les macros en Basic Libre Office.
              Il faut donc 2 versions, une pour Excel et une autre pour Libre Office.
              0
          8. Tes solution sembles probables mais mettre le fichier excel "propre" n'est pas dans mes capacités. Le fichier est passé dans plusieurs mains et chacun y a apporté ses modifs sans se soucier
            Pour moi la finalité est compliquée sans des compétences extérieures
            merci
            0