Macro à la seconde...

Bonjour tous le monde,

Je voudrais savoir si il est possible sur ods de produire un bouton qui m'affiche instantanément l'heure à la seconde près. Et aussi si je peux lui demander d'arrondir automatiquement à 59s partant du principe que toute minute commencée est due.

PS : je cherche aussi un programmeur à l'aise sur les appli. de gestion de temps.

Merci à la communauté et à ce site.

Alain.

6 réponses

  1. Bonsoir
    la macro ci dessous à associer à un bouton

    sub heure
    rem  variables
    dim document   as object
    dim oSheet as object 
    oSheet = ThisComponent.sheets.GetByName("feuille1") 
    oSheet.getCellRangeByName ("A22").value = (now)
    end sub


    avec A22 la cellule destination à mettre au format heure
    0
    1. Merci c'est gentil mais je ne vois pas où mettre ces infos. Lorsque j'ai créé mon bouton à partir de mon formulaire je vais dans Contrôle et après ?
      Je ne suis pas super à l'aise, je crée un modèle de travail pour le programmeur qu'il me faudrait pour lancer l'appli.

      Amicalement
      Alain
      0
  2. Merci Mytå, mais en fait je sais faire un bouton, ma macro est déjà très avancée mais je ne sais pas trop comment interpréter les données de yclik.

    Je veux qu'en appuyant sur un bouton, l'heure que j'entre actuellement à la main s'auto-génère par ce bouton et ce, à la seconde.

    Cordalement/

    Alain
    0
    1. Contributeur
      Re le Forum

      Tu n'as pas lu le lien . . .

      Une fois celui-ci dessiné, il doit être en principe sélectionné par défaut (matérialisé par des « poignées de sélection » vertes). Faire un clic droit sur le bouton et choisir dans le menu contextuel « contrôle ». Choisir l'onglet « Evénements », et à droite de la ligne « Lors du déclenchement » cliquer sur le bouton [...] pour choisir la macro. Un autre dialogue s'affiche, cliquer sur « Assigner » pour aller sélectionner la macro (elle doit préexister). Valider les dialogues.

      Mytå
      0
  3. Ok, sur l'onglet évènement je suppose que je dois cliquer sur la 1ère ligne "Approuver l'action" puis dans la fenêtre suivant encore "Approuver l'action" mais ensuite, quelle macro dois-je sélectionner ?
    Parmi elles il y a bien le nom de mon logiciel avec pour sous-dossier un document nommé "Standard" mais il n'y a rien dedans.

    Cordialement
    Alain
    0
    1. Bonjour
      Pour inclure la macro dans le classeur
      -Copier le code sur le forum sans les N° de lignes
      -ouvrir le classeur
      -ALT+F11
      sélectionner le classeur ouvert dans la fenêtre de sélection de la boite de dialogue avec le +
      -bouton "Nouveau" et OK
      -Coller le code dans l'onglet macro
      -enregistrer avec l'icône "enregistrement"
      -fermer la fenêtre par la croix en haut à gauche

      sur le classeur affecter la macro comme indiqué dans le commentaire de Myta
      0
      1. Ok ça marche, vous êtes des Dieux, je suis hyper content. Par contre je voulais que mes secondes soient arrondies à 59s sur le principe de "toute minute commencée est due".
        2eme élément, sachant que j'ai 2 champs horaires à renseigner, un au commencement l'autre à la fin, comment créer un bouton chacun sachant que lorsque je copie mon bouton et tente d'en modifier la destination ça change aussi celle de l'autre ?

        Alain
        0
        1. Bonsoir
          a tester

          REM  *****  BASIC  *****
          sub heure
          rem variables
          dim document as object
          dim oSheet as object
          Dim monheure as date, messecondes as integer, maminute as integer, monheure_due as date
          oSheet = ThisComponent.sheets.GetByName("feuille1")

          monheure=(now)' extraction heure
          msgbox(monheure) ' pour test à supprimer si besoin
          messecondes =VAL(Right(monheure,2)) 'extraction secondes en numérique
          maminute = VAL(MID(monheure,15,2) 'extraction minute en numérique

          If messecondes >0 then monheure_due = CDATE(LEFT(monheure,14)&(maminute+1)&":00") else monheure_due = monheure

          rem resulat dans les cellules
          oSheet.getCellRangeByName ("A22").value = monheure_due
          oSheet.getCellRangeByName ("A23").value = monheure_due

          end sub
          0