[Résolu] Inclure SUM dans ma fonction personnalisée

  • Initiateur de la discussion Initiateur de la discussion Lone-wolf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lone-wolf

XLDnaute Barbatruc
Bonjour à tous,

j'aimerais inclure Sum dans ma fonction, en gros, faire la somme d'une ligne et d'une colonne et arrondir.


Code:
Public Function ARRONDIR(Nombre As Double, Nb_chiffres As Double) As Double
Dim indice As Double
indice = 0.5
ARRONDIR = Round(Nombre / indice, 1) * indice
End Function

Dans l'aide je n'ai rien trouvé, et j'ai testé plusieures méthodes sans résultat.
Merci pour votre aide


A+ 😎
 
Dernière édition:
Re : Inclure SUM dans ma fonction personnalisée

Bonjour
Pas compris ce que vous voulez faire.
En tout cas vous pouvez déclarer As Range un paramètre d'une fonction pour obtenir un résultat dépendant de l'ensemble de ses cellules.
Cordialement.
 
Re : Inclure SUM dans ma fonction personnalisée

Bonjour Lone-wolf, Dranreb,
Pas certain d'avoir compris...
VB:
Public Function ARRONDIR2(Plg As Range)
Dim indice As Double, C As Long
indice = 0.5
C = WorksheetFunction.Sum(Plg)
ARRONDIR2 = Int(C / indice) * indice
End Function
Cordialement
 
Re : Inclure SUM dans ma fonction personnalisée

Bonjour le fil 🙂,
Pourquoi réinventer la poudre 😕 ?
Tu est sous 2007, donc la fonction existe déjà 🙄...
Code:
=ARRONDI.AU.MULTIPLE(SOMME(A1:A12);0,05)
par exemple 😛.
Bonne suite 😎
 
Re : Inclure SUM dans ma fonction personnalisée

Bonjour Dranreb, Efgé, JNP

@ JNP: je sais que ces fonctions extistent, mais elles sont dépendantes et non jumellées comme moi j'ai envie de faire. C'est à dire, avoir Arrondi et Sum dans une seule fonction. 😛😱😀

@ Efgé: mon calcul ( 11.11+11.11+11.11) avec le code me donne 33 au lieu de 33.33.
Bien entendu, avec Arrondi c'est 33.35.

@Dranreb: même en mettant As Range, pas de résultat.

A+ mes chères 😎
 
Re : Inclure SUM dans ma fonction personnalisée

Je vous l'aurais bien écrit si j'avais pu comprendre ce que vous voulez mais
, en gros, faire la somme d'une ligne et d'une colonne et arrondir.
ça ne me paraît avoir aucun sens. Mais on peut bien sûr: on passe juste la cellule à l'intersection dans un param appelé Cell par exemple et on rend: = Round(WorksheetFunction.Sum(Cell.EntireRow) + WorksheetFunction.Sum(Cell.EntireColumn) * 2) / 2
Bon long week end.
 
Re : Inclure SUM dans ma fonction personnalisée

Re 🙂,
@ JNP: je sais que ces fonctions extistent, mais elles sont dépendantes et non jumellées comme moi j'ai envie de faire. C'est à dire, avoir Arrondi et Sum dans une seule fonction. 😛😱😀
Désolé, mais je ne vois vraiment aucun intérêt à écrire 5 ou 10 lignes de code au lieu de
Code:
=ARRONDI.AU.MULTIPLE(SOMME(A1:A12);0,05)
Les fonctions sont biens jumellées vu qu'elles sont dans une seule cellule 😕...
Chez moi, c'est ce qu'on appelle "b... les mouches"... 🙁
En plus, tous les calculs faits sur ce forum prouvent que VBA est plus long que les formules 🙄...
Bonne nuit 😎
 
Re : Inclure SUM dans ma fonction personnalisée

Rebonjour à tous,

Et voilà la solution:

Code:
Function ARRONDIR_SOMME(Plage As Object)
Dim Indice As Double, cell As Range, Somme As Double, Total As Double
       Application.Volatile
    Indice = 0.5
       For Each Cell In Plage
                   Somme = Somme + Cell.Value
                   Total = Round(Somme / Indice, 1) * Indice
       Next
       ARRONDIR_SOMME = Total
   End Function

Et comme avait dit job75 dans un autre fil, qu'est qui est plus rapide à faire, ça?

Code:
=ARRONDI.AU.MULTIPLE(SOMME(A1:A12);0,05)

ou ça?

Code:
=ARRONDIR_SOMME(B2:B9)

Et si on vas dire que mon code est plus long, pauvres programmeurs de Microsoft
qu'il se sont fait schleu, à écrire toutes les fonctions Excel.



A+ 😎
 
Dernière édition:
Re : Inclure SUM dans ma fonction personnalisée

Re 🙂,
Selon toi, c'est quoi un fonction personnalisée?
Littéralement, une fonction personnelle, mais le littéraire et Excel 🙄...
Techniquement, une fonction qui n'est pas fournie nativement, ou qui remplace plusieurs lignes de formules par une programmation simple 🙂


Et comme avait dit job75 dans un autre fil, qu'est qui est plus rapide à faire, ça?
Code:
=ARRONDI.AU.MULTIPLE(SOMME(A1:A12);0,05)
ou ça?
Code:
=ARRONDIR_SOMME(B2:B9)

Et si on vas dire que mon code est plus long, pauvres programmeurs de Microsoft
qu'il se sont fait schleu, à écrire toutes les fonctions Excel.
Tests effectués sur 10000 lignes 11 colonnes, en lançant le calcul sur ordre après avoir copié vers le bas sans recalcul :
Par formules : instantanée 😛
Par fonction : entre 5 et 10 secondes 😱 !...
Oui, les programmateurs se sont fait suer pour quelque chose 😡 !
Bon long WE, et bonne réflexion 😎
 
Re : [Résolu] Inclure SUM dans ma fonction personnalisée

HuaaaaaauuuuuuH JNP

ça c'est du calcul!!!

Et combien de temps tu as mis pour écrire tous ça à la main????
Pense à ceux qui tapent avec 2 doigts.

Bon long WE, et bon calcul 😛😀


A+ 😎
 
Re : [Résolu] Inclure SUM dans ma fonction personnalisée

Correction du code, suite à la ligne "Total = Round(Somme / Indice, 1) * Indice" n'ayant rien à faire dans For each.

Code:
Function ARRONDIR_SOMME(Plage As Object)
Dim Indice As Double, cell As Range, Total As Double
       Application.Volatile
    Indice = 0.5
       For Each cell In Plage
        Total = Total + cell.Value
       Next
       ARRONDIR_SOMME = Round(Total / Indice, 1) * Indice
   End Function

A+ 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

J
Réponses
13
Affichages
1 K
K
Réponses
6
Affichages
2 K
K
R
Réponses
6
Affichages
3 K
richardM
R
Retour