|
|
|
|
Bonjour,
Je suis obliger de passer sous OPEN OFFICE moi qui est travaillé durant presque 10 ans sur EXCEL, certes c'est un logiciel libre (Youppi !) mais la doc est vraiment pas clair du tout :o(
Voici donc mon problème assez basique je dois bien l'avouez ! Je veux faire un calcul dans un macro et que cela donne le résultat dans une cellule qui fait partie de ce même calcul.
EXEMPLE:
A1+B1+C1=C1
100+200+300=600
La valeur 100 étant en A1, le 200 en B1, le 300 en C1. J'aimerais que le calcul additionne donc A1+B1+C1 et qu'il me renvoie la réponse dans la cellule C1.
Je me doutes que cela doit être d'une simplicité désarmante, mais je cherche depuis des heures une façon de faire le tout sans avoir une tonne de ligne de code... Certes l'enregistreur m'a donné une formule mais c'est tellement long que je me revoie pas copier la formule pour plusieurs calcul à faire ! Cela serait juste impossible vue l'ampleur des calculs à faire...
Merci d'avance pour toute réponse
Hadryan
Configuration: Windows Vista Firefox 3.0.10
Effectivement, le code UNO n'est pas forcément adapté pour des macros simples.
|
Ok je voie, ce qui me donnerait donc une formule comme cela:
|
Ok j'avance tranquillement je suis rendu avec le code suivant pour ma macro:
|
Bon pour éviter d'écrire 10 messages de suite, je me suis enregistré sur le forum histoire de pouvoir éditer mes futurs messages aux besoin...
|
Hello
|
Je ne sais pas, on m'avait parlé qu'au lieu de faire A1+B1=C1 on pouvait faire par exemple: Argent+Prime=Salaire ... je ne sais pas si cela est utile ? Sauf peut-être pour relire un code plus tard ce qui en effet pourrait vachement aider j'imagine !
|
Voici donc ma formule à l'heure actuelle, qui fait ce que je lui demande, la seule chose que je me demande c'est si elle est optimisé ou pas ?
|
Je rebondis sur le post 6
Sub Test(Feuille)
Dim oSheet as Object
oSheet = ThisComponent.Sheets.getByName(Feuille)
with oSheet
.getCellRangeByName("D2").value = .getCellRangeByName("B2").value + .getCellRangeByName("C2").value _
+ .getCellRangeByName("D2").value
.getCellRangeByName("D3").value = .getCellRangeByName("B3").value + .getCellRangeByName("C3").value _
+ .getCellRangeByName("D3").value
.getCellRangeByName("D4").value = .getCellRangeByName("B4").value + .getCellRangeByName("C4").value _
+ .getCellRangeByName("D4").value
end with
End Subet ensuitesub Main TestGeneral "Ménage" TestGeneral "Professeur" TestGeneral "Dépense" end sub cct le post 7 : oui, tu peux tout à fait construire dynamiquement des références à des cellules en ne forunissant que leur coordonnées ! |