1 pièce(s) jointe(s)
LibreOffice CALC - Macro modifiant la formule d'une cellule
Bonjour,
J'ai besoin d'aide pour l'écriture d'une macro. Je suis en train de créer un fichier qui recense des données et je dois calculer en dernière ligne de tableau la moyenne.
Il y a un bouton qui insère une ligne (la ligne 4) et macro déjà écrite, mais lorsque j'insère la ligne la formule se trouvant à la dernière ligne (ligne noir) ne se met pas à jour.
Le tableau de base est :
- Ligne 3 en tête
- Ligne 4 entrée des données
- Ligne 5 la moyenne
La formule de base pour M5 par exemple est la suivante : =SOMME(M4:M4)/NBVAL(M4:M4).
Lorsque j'insère une ligne, le tableau devient :
- Ligne 3 en tête
- Ligne 4 entrée des données
- Ligne 5 entrée des données
- Ligne 6 la moyenne
La formule devient alors : =SOMME(M5:M5)/NBVAL(M5:M5).
Alors que j'aimerai : =SOMME(M4:M5)/NBVAL(M4:M5).
Et ainsi de suite à chaque nouvelle ligne créée.
La ligne 4 ne changera jamais, c'est toujours la première ligne d'entrée des données mais la dernière change à chaque fois que je crée une nouvelle ligne ...
Que faire ?
Je vous joint le fichier.
Merci d'avance :D
LibreOffice CALC - Macro modifiant la formule d'une cellule
Bonjour,
Pour bien comprendre ton, problème :
-Si tu ajoute une ligne, la ligne 6 (moyenne) devient : =SOMME(M5:M5)/NBVAL(M5:M5). C'est que je constate sur ton fichier exemple.
Alors que tu aimerai : =SOMME(M4:M5)/NBVAL(M4:M5).
Et si tu ajoute une deuxième ligne que deviendrait alors la formule de la ligne moyenne ?
Car je suppose que si tu as mis un bouton c'est que l'ajout des lignes peut se faire autant de fois que nécessaires ?
Dans ce cas on pourrait modifier la formule par macro, mais j'ai besoin d'être sûr.
Cordialement
LibreOffice CALC - Macro modifiant la formule d'une cellule
Bonjour,
Désolé, mais du mal à comprendre la logique des formules :
Si insertion d'une première ligne :
La ligne moyenne est en 6 et la formule doit être : =SOMME(M4:M5)/NBVAL(M4:M5)
Si insertion d'une deuxième ligne:
La ligne moyenne passe en 7 et la formule que tu veux c'est : =SOMME(M6:M6)/NBVAL(M6:M6) ?....Moi je m’attendais à =SOMME(M5:M6)/NBVAL(M5:M6)
Si insertion d'une troisième ligne:
La ligne moyenne passe en 8 et la formule devrait être quoi alors ?
Cordialement
LibreOffice CALC - Macro modifiant la formule d'une cellule
Ah OK j'avais pas trop compris :marteau:
Donc on peut donc faire facilement par macro. Je te fais çà dans la soirée.
Par ailleurs quand tu insère une nouvelle ligne tu poses tes formules (c'est parfait) mais j'ai remarqué que les formats des cellules (celles en euros) ne sont pas conservées.
Je vais voir çà aussi.
Cordialement
1 pièce(s) jointe(s)
LibreOffice CALC - Macro modifiant la formule d'une cellule
Re
En pièce jointe le fichier modifié.
A tester
CordialementPièce jointe 580600
LibreOffice CALC - Macro modifiant la formule d'une cellule
Bonsoir.
Chez moi çà fonctionne nickel. Mais je sais qu'en fonction des versions ou des postes çà peut changer.
A la place des lignes :
Code:
oFeuille.getCellRangeByName("M4").numberformat = 108
Essaye :
Code:
oFeuille.getCellRangeByName("M4").numberformat = 106
Et dis moi. Sinon on pourra trouver une autre solution pour les formats
Cordialement
1 pièce(s) jointe(s)
LibreOffice CALC - Macro modifiant la formule d'une cellule
Bonjour
La nuit portant conseil.......:sleep: j'ai trouvé mieux.
Comme les cellules de la ligne 4 contiennent de nombreuses propriétés (dates, euros, pourcentage, couleurs) il est donc préférable d'utiliser le dispatcher pour tout d'abord copier la ligne 4
Donc la ligne 4 est copié dans le presse papier même si elle contient déjà des données.
Ensuite insertion de la nouvelle ligne et collage. Ainsi la nouvelle ligne insérée est complétement vierge et identique. Plus besoin par macro de réinsérer des formules et autre formatage....
En pièce jointe le nouveau fichier.
Cordialement
Pièce jointe 580653