Bonjour,
Tout le monde connait la fonction =somme(A1;A15) du tableur Calc.
Je voudrais créer une fonction du même type qui parcourt les cellules de la plage donnée en argument pour y faire mes propres calculs. Ayant ratissé le Net pendant des heures, j’ai l’impression que ce n’est pas possible… ou alors, vous avez la solution !
Alors merci d’avance pour toute réponse
Bonjour,
Un exemple concret ?
Spontanément, je te répondrais SOMMEPROD ou SOMME.SI.
Bonjour,
Merci pour ces réponses, mais elles ne répondent pas à ma demande.
Je dois créer une fonction qui examine et traite les cellules d’une plage. Ce que je veux faire c’est du genre :
=maFonction(A1:B3) cette fonction devra traiter les 6 cellules pour donner un résultat.
Bonne journée
Bonjour,
créer des fonctions passe par le langage de macro.
Vous devrez définir dans ce langage les traitements que vous appliquerez aux cellules.
Je pense que vous trouverez des informations utiles dans le wiki LibreOffice.
Bien sûr qu’une nouvelle fonction s’écrit par le langage macro. J’en ai déjà fait plusieurs surtout avec l’enregistrement de macro. Ce que je n’arrive pas à faire c’est d’écrire une fonction qui traite les cellules d’une plage donnée en arguments. Elle serait de la forme :
function maFonction(plageDeCellules)
dim Resultat
for each Cellule in plageDeCellules
Resultat = … traitement…
next
maFonction = Resultat
end function
Bonjour,
pouvez-vous déposer un exemple (simplifié et anonymisé) de classeur à analyser, avec un exemple de demande de traitement à réaliser ?
Merci de placer ce fichier en PJ de votre message initial et non par réponse à ce message.
??? Quelle est la différence sémantique/fonctionnelle avec “SOMME” ???
Bonjour,
Je crois que je ne me fais pas comprendre. Je vais tourner ma demande d’une autre façon.
Imaginons, à titre d’exercice, que je veuille réécrire la fonction =somme () du tableur Libreoffice en basic.
Le pseudo code serait :
fonction Somme(PlageDeCellules)Total = 0
pour chaque cellule de PlageDeCellules
Total = Total + (valeur de Cellule)
cellule suivante
Retour Total
Fin fonction
Alors, comment écrire cela en vrai basic ? Je bute sur l’itération des cellules dans la plage fournie.
Merci d’avance
Si, vous êtes très clair. Mais si vous donnez un mini-fichier exemple de contenu avec un traitement à réaliser, ça aidera à vous aider.
Postez cet exemple dans votre message initial pour plus de clarté.
Bonjour,
exemple ici :
pseudo-somme.ods (12.4 KB)
J’ai créé une fonction MASOMME()
qui est utilisée dans la feuille. Les formules avec la fonction SOMME()
permettent de vérifier les résultats.
Votre problème initial provient de la manière de passer les arguments à la fonction utilisateur (ici MASOMME()
). Voir le code.
Attention, ce code ne comporte pas de gestion des erreurs…
C’est exactement ce que je cherchais. Cela ne s’invente pas !
BRAVO, FANTASTIQUE
MERCI MERCI MERCI MERCI