[Résolu] [Calc] Recopie vers le bas d'une formule

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
SolPro
Membre OOrganisé
Membre OOrganisé
Messages : 79
Inscription : 31 juil. 2022 12:38

[Résolu] [Calc] Recopie vers le bas d'une formule

Message par SolPro »

Bonjour à tous
J'essaie d'automatiser le travail de mes collègues de travail peu enclin à utiliser le tableur Calc et donc encore moins à créer des tables dynamiques.

Je mets en pièce jointe le document très épuré : le tableau de départ fait 2500-3000 lignes selon les jours.
Le but est de mettre en évidence pour une liste de "villes/collectivités" celles dont une valeur est différente de 1... auquel cas, il y a un souci
En fait, une somme ne doit pas "avoir de décimales" donc si il y en a, il y a un problème.
J'ai fait une formule du type : montant diviser par l'entier de lui-même. Par exemple, 151.25 donnera 151.25/151 soit 1.xxxx donc "pas bon".
J'ai automatisé cela en différentes étapes..... lors de la création des tableaux pour avoir un tableau final dont l'onglet s'appelle Filtre<>1

Dans ma macro, la formule de calcul me permettant d'obtenir le résultat est

Code : Tout sélectionner

zCellule.Ecrit ( "Copie_TCD", "C2", "F", "=B2/TRUNC(B2)") 'fonction qui affiche l'entier d'un nombre dans la cellule C2
Ma difficulté est la suivante : comment automatiser la recopie vers le bas sachant que le nombre de lignes varient.
Pour le moment l'utilisateur "fait un recopie vers le bas en utilisant la croix en bas à droite".

Je voudrai automatiser cela
Je joins le fichier complet
j'ai décomposé l'exécution en x étapes et là, l'utilisateur doit "recopier ves le bas manuellement" puis depuis le menu "utilitaires sgc" choisir "dépenses" étape D5 CréationFiltre<>1

Votre aide me serait d'un grand secours car j'ai d'autres tableaux pour lesquels je bloque sur ce type de difficulté

COmment donc recopier vers le bas une formule de calcul via macro ?
Un grand merci

Solpro_macro_pas.ods
solprorecopieverslebas.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Oukcha le 07 déc. 2024 20:05, modifié 3 fois.
Raison : "Resolu" -> "Résolu"
LibreOffice 7.5.4.2 (x64) et Windows 10 Pro (personnel)
LibreOffice 7.2.7.2.M7 (x64) et Windows 10 Pro (professionnel, obligatoire)
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1146
Inscription : 19 août 2018 05:20

Re: [Calc] Recopie vers le bas d'une formule

Message par Dolev »

Bonjour,
SolPro a écrit : 07 déc. 2024 11:29 COmment donc recopier vers le bas une formule de calcul via macro ?
A tester

Code : Tout sélectionner

Sub Main
    maPlage = "C2:C8"
    monDocument = ThisComponent
    maFeuille = monDocument.Sheets.getByName("Feuille1")
    
    maZone = maFeuille.getCellRangeByName(maPlage)
    direction = com.sun.star.sheet.FillDirection.TO_BOTTOM
    maZone.fillAuto(direction,1)
end sub
Dernière modification par Dolev le 07 déc. 2024 14:32, modifié 1 fois.
Open Office 4.1.15 sous Windows 11
Avatar de l’utilisateur
Eric Villeneuve (11)
Fraîchement OOthentifié
Messages : 7
Inscription : 01 juil. 2013 16:14

Re: [Calc] Recopie vers le bas d'une formule

Message par Eric Villeneuve (11) »

Bonjour, une solution jointe en restant avec Zbasic
code placé en fin du module Etape 3 Copie_TCD
bonne journée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Windows 10 - LibreOffice Version: 5.2.5.1 (x64)
SolPro
Membre OOrganisé
Membre OOrganisé
Messages : 79
Inscription : 31 juil. 2022 12:38

Re: [Calc] Recopie vers le bas d'une formule

Message par SolPro »

Un grand et très honnête merci à tous les 2.
Je m'oriente sur la 2nde solution (j'essaie de me limiter à zbasic)
je vais lire/relire vos 2 propositions pour comprendre.

Vous êtes vraiment très fort.
Merci
LibreOffice 7.5.4.2 (x64) et Windows 10 Pro (personnel)
LibreOffice 7.2.7.2.M7 (x64) et Windows 10 Pro (professionnel, obligatoire)