Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


...en sortant quelque peu du sujet, avez-vous envisagé d'utiliser un logiciel de comptes comme http://www.grisbi.org/ ?

Je la 12/04/2017 11:18, LC_Libre skribis :
Bonjour,

j'ai un tableau de suivi des dépenses construit comme suit

A;B;C;D;E;F;G;H;I;J
DATE;MODE;NUM;OBJET;Débit;Crédit;Solde;Sous-catégorie;Catégorie;NATURE
dim. 1/01/2017;CB;;OPÉRATION 42737-3;414,00;;-414,00;COMPTE 1;PLACEMENT;Débit
dim. 1/01/2017;CB;;OPÉRATION 42737-4;154,00;;-154,00;DIVERS;COURANT;Débit
lun. 2/01/2017;CHQ;99919;OPÉRATION 42737-5;475,00;;-475,00;ÉQUIPEMENTS;COURANT;Débit

La colonne NATURE (J) contient cette formule
=SI(E2;"Débit";"Crédit")

La macro ci-dessous insère cette formule en dernière ligne. Elle est déclenchée à chaque enregistrement du classeur. Du coup, l'insertion se répète inutilement, ajoute des lignes vides au tableau, ce qui fausse les Tables de pilote mises en place pour l'analyse.
|sub insertionformulenature|
||
    |
    rem ------------------define
    variables---------------------------------
    dim document   as Object
    dim dispatcher as object
       rem
----------------------------------------------------------------------

    rem get access to the document
       document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    rem
----------------------------------------------------------------------
    dim args1(0) as new com.sun.star.beans.PropertyValue
       args1(0).Name = "ToPoint"
       args1(0).Value = "tetenature" rem "$J$1"

       dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0,
    args1())

    rem
----------------------------------------------------------------------
    dim args2(1) as new com.sun.star.beans.PropertyValue
       args2(0).Name = "By"
       args2(0).Value = 1
       args2(1).Name = "Sel"
       args2(1).Value = false

       dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData",
    "", 0, args2())
    rem -------repérer la ligne de la cellule active
    Dim CelluleActive As Object, LigneCelluleActive As Variant

      CelluleActive = ThisComponent.getCurrentSelection
      LigneCelluleActive= CelluleActive.CellAddress.Row

    rem
----------------------------------------------------------------------
    dim args3(0) as new com.sun.star.beans.PropertyValue
       args3(0).Name = "By"
       args3(0).Value = 1
       rem dispatcher.executeDispatch(document, ".uno:GoUpSel", "", 0,
    args3())
       dispatcher.executeDispatch(document, ".uno:GoDownSel", "", 0,
    args3())

       dispatcher.executeDispatch(document,
    ".uno:JumpToNextUnprotected", "", 0, Array())
       dispatcher.executeDispatch(document, ".uno:FillDown", "", 0,
    Array())

    rem
----------------------------------------------------------------------
    dim args4(1) as new com.sun.star.beans.PropertyValue
       args4(0).Name = "By"
       args4(0).Value = 1
       args4(1).Name = "Sel"
       args4(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args4())

end Sub|
Or, Je souhaite que l'insertion de la formule n'intervienne pas plus bas que la dernière ligne saisie.
Pouvez-vous me mettre sur la piste de mon erreur ?

NB : je n'ai pas trouvé la syntaxe Basic pour tester la position de cette dernière ligne.

Merci,
LC

--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.