Gestion des boutons dans Libre Office Calc

klages -  
klages Messages postés 2 Statut Membre -
Bonjour,

Une feuille de calcul LibreOffice Calc comprend 500 lignes.
La première cellule de chaque ligne contient un bouton intitulé "Calcul".
Les cellules suivantes de la ligne contiennent des données numériques.
En cliquant sur un bouton quelconque, l'utilisateur déclenche une macro M (commune à tous les boutons) qui effectue un calcul à partir des données numériques de la ligne dans laquelle le bouton a été placé.

Question n° 1: Est il possible de rédiger une macro permettant de dupliquer le bouton "Calcul" sans avoir à se fatiguer à effectuer 499 copiés-collés ?
Cette macro contiendrait une boucle FOR ... NEXT, avec à l'intérieur de la boucle une commande indiquant les divers paramètres nécessaires pour la création de chaque bouton (coordonnées,
longueur, largeur, renvoi à la macro M, étiquette "Calcul" en caractères gras, etc ...

Question n°2: Est il possible de placer au début de la macro M une commande permettant de récupérer le n° de la ligne dans laquelle se situe le bouton, afin de permettra à ladite macro M
de récupérer les données numériques situées dans les différentes cellules de la ligne pour qu'elle puisse effectuer son calcul ?

J'ai cherché partout ces deux commandes dans Internet et je n'ai rien trouvé.

Merci d'avance si vous avez la réponse !

Cordialement,

3 réponses

  1. yclik Messages postés 3875 Date d'inscription   Statut Membre Dernière intervention   1 609
     
    Bonjour
    il faudrait mettre un exemple sur ce forum
    il y a peut être la solution consistant en faisant déclencher les macro sur évènement feuille
    0
  2. klages Messages postés 2 Statut Membre
     
    Bonjour,

    Je vous remercie pour votre réponse
    Voici un exemple simplifié (en réalité le calcul à effectuer est beaucoup plus compliqué, mais ce n'est pas ça qui me bloque):



    L'utilisateur saisit des nombres dans les colonnes A et B, puis il clique sur "Calcul".
    Une macro calcule la somme et l'affiche dans la colonne A + B.
    Le problème est: comment faire connaître à la macro les 2 nombres qu'elle doit additionner ?
    Et pour cela, comment lui faire connaître le n° de ligne dans laquelle sont situés ces
    2 nombres ?

    Autre question: comment dupliquer le bouton 500 fois de manière automatique, sans faire des copiés-collés ?

    Cordialement,
    0
  3. yclik Messages postés 3875 Date d'inscription   Statut Membre Dernière intervention   1 609
     
    Bonsoir
    Le problème est: comment faire connaître à la macro les 2 nombres qu'elle doit additionner ?
    il faudrait récupérer l'adresse de la cellule active
    exemple
    sub cell_active

    Dim oDoc As Object
    Dim Feuille As Object
    oDoc = ThisComponent
    Dim CelluleActive As Object
    Feuille = oDoc.getSheets.getByName("Feuille1" )
    CelluleActive = ThisComponent.getCurrentSelection
    Dim r as integer
    Dim c as integer
    r=CelluleActive.CellAddress.Row
    c=CelluleActive.CellAddress.Column
    msgbox "colonne " + CStr(c) + " : ligne " + CStr(r)
    end sub


    ensuite effectuer le calcul en fonction des adresses

    Voir ausssi les spécialistes des macros Ici
    0
    1. klages Messages postés 2 Statut Membre
       
      Merci beaucoup. Ca marche !
      0