[Résolu] [Calc] Recopie de formule jusqu'à la dernière ligne

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 !
fneck
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 07 janv. 2014 10:38

[Résolu] [Calc] Recopie de formule jusqu'à la dernière ligne

Message par fneck »

Bonsoir,

A l'aide du sujet
https://forum.openoffice.org/fr/forum/v ... =8&t=45208
et de l'excellent traitement de Piaf (modifié pour l'occasion au niveau des coordonnées cellule et feuille),

Code : Tout sélectionner

Option Explicit

Sub recopierFormule()
Dim oDoc as Object, maFeuille as Object, maCellule as Object, sel as Object
Dim curseur as Object, maZone as Object
Dim direction as Integer
   oDoc = thisComponent
   maFeuille = oDoc.Sheets(1)
   maCellule = maFeuille.getCellRangeByName("E2")
   oDoc.CurrentController.Select(maCellule)
   sel = oDoc.CurrentSelection
   curseur = maFeuille.createCursorByRange(sel)
   curseur.collapseToCurrentRegion
   maZone = maFeuille.getCellRangeByPosition(curseur.RangeAddress.EndColumn,curseur.RangeAddress.StartRow,curseur.RangeAddress.EndColumn,curseur.RangeAddress.EndRow  )
   direction = com.sun.star.sheet.FillDirection.TO_BOTTOM
   maZone.fillAuto(direction,1)
End Sub
j'essaie l'adaptation à mon tableau ci joint :
extrait.ods
Je rencontre le problème suivant : Mon tableau peut contenir un nombre de lignes très variables de 1000 à 20000 (exceptionnel)
Le code de Piaf fonctionne en recopiant la formule contenue dans la première ligne de la dernière colonne jusqu'en bas du tableau quel que soit sa longueur.
Dans mon cas, la formule à recopier se trouve juste avant la colonne des commentaires et le code a pour effet de recopier "commentaires" dans la dernière colonne jusqu'en bas.
la formule me convient parfaitement car elle permet également de supprimer les parenthèses d'un nom et de faire des cumuls par client.
J aimerais donc que la formule soit recopiée jusqu'à la dernière ligne remplie ou jusqu'à la première ligne vide.

J'ai cherché avant de poster ici. je pense qu'il ne manque pas grand chose alors d'avance Merci de votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par fneck le 13 févr. 2018 12:01, modifié 1 fois.
Obligation de version libreoffice 6.2.7.1
windows 10 Pro
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Calc] Recopie de formule jusqu'à la derniere ligne

Message par Churay »

Bonsoir

Il suffit de remplacer

Code : Tout sélectionner

maZone = maFeuille.getCellRangeByPosition(curseur.RangeAddress.EndColumn,curseur.RangeAddress.StartRow,curseur.RangeAddress.EndColumn,curseur.RangeAddress.EndRow)
par

Code : Tout sélectionner

maZone = maFeuille.getCellRangeByPosition(maCellule.RangeAddress.EndColumn,maCellule.RangeAddress.StartRow,maCellule.RangeAddress.EndColumn,curseur.RangeAddress.EndRow)
 Ajout : Sans le saut de ligne après = 
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
fneck
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 07 janv. 2014 10:38

Re: [Calc] Recopie de formule jusqu'à la derniere ligne

Message par fneck »

Je te remercie c'est exactement ce que je cherchais.

Je classe donc à Résolu.
Obligation de version libreoffice 6.2.7.1
windows 10 Pro