Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le message de
news:4077271c$
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" <claude.briguet@swisscom.com> a écrit dans le message de
news:4077271c$1_2@news.bluewin.ch...
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le message de
news:4077271c$
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le message de
news:4077271c$
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" <claude.briguet@swisscom.com> a écrit dans le message de
news:4077271c$1_2@news.bluewin.ch...
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le message de
news:4077271c$
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long, NbColonnes As
Integer) As Double
Application.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))
End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" a écrit dans le message de
news:40779b4a$
Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais utiliser
pour
calculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le message
de
news:4077271c$Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des
x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long, NbColonnes As
Integer) As Double
Application.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))
End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" <claude.briguet@swisscom.com> a écrit dans le message de
news:40779b4a$1_3@news.bluewin.ch...
Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais utiliser
pour
calculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:edU88TqHEHA.3328@TK2MSFTNGP09.phx.gbl...
Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" <claude.briguet@swisscom.com> a écrit dans le message
de
news:4077271c$1_2@news.bluewin.ch...
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des
x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long, NbColonnes As
Integer) As Double
Application.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))
End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" a écrit dans le message de
news:40779b4a$
Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais utiliser
pour
calculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le message
de
news:4077271c$Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des
x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Re-bonjour,
C'est super génial, ça marche !
Il me manquais juste le "Application.Volatile".
Un super grand merci pour ton aide.
Je te souhaite de joyeuses fêtes de pâques (et à tous les autres aussi).
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long, NbColonnes As
Integer) As DoubleApplication.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" a écrit dans le message de
news:40779b4a$Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais utiliser
pourcalculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le message
denews:4077271c$Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des
xpremières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Re-bonjour,
C'est super génial, ça marche !
Il me manquais juste le "Application.Volatile".
Un super grand merci pour ton aide.
Je te souhaite de joyeuses fêtes de pâques (et à tous les autres aussi).
Claude
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:e5N2NquHEHA.3536@TK2MSFTNGP09.phx.gbl...
Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long, NbColonnes As
Integer) As Double
Application.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))
End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" <claude.briguet@swisscom.com> a écrit dans le message de
news:40779b4a$1_3@news.bluewin.ch...
Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais utiliser
pour
calculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:edU88TqHEHA.3328@TK2MSFTNGP09.phx.gbl...
Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" <claude.briguet@swisscom.com> a écrit dans le message
de
news:4077271c$1_2@news.bluewin.ch...
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des
x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Re-bonjour,
C'est super génial, ça marche !
Il me manquais juste le "Application.Volatile".
Un super grand merci pour ton aide.
Je te souhaite de joyeuses fêtes de pâques (et à tous les autres aussi).
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long, NbColonnes As
Integer) As DoubleApplication.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" a écrit dans le message de
news:40779b4a$Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais utiliser
pourcalculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le message
denews:4077271c$Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme des
xpremières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees", Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Salut Claude,
Même si tu as trouvé ton bonheur, permets moi d'émettre quelques réserves
pour
l'utilisation de Application.Volatile.
Dans des modèles de chiffrier le moindrement complexe, ça ralentit le
machine en
provoquant des recalculs automatiques.
Mon conseil (tu en fais ce que tu veux) est de conserver la première
implantation VBA de MaSomme() (sans le App.Volatile) définie par Denis et
de
l'utiliser ainsi:
=masomme(DECALER(A1;;;5;2))
Ou même (beaucoup plus rapide), de te passer complètement d'une fonction
VBA et
d'y aller directement:
=SOMME(DECALER(A1;;;5;2))
Salutations,
Daniel M.
"Claude BRIGUET" wrote in message
news:4077dc8a$Re-bonjour,
C'est super génial, ça marche !
Il me manquais juste le "Application.Volatile".
Un super grand merci pour ton aide.
Je te souhaite de joyeuses fêtes de pâques (et à tous les autres aussi).
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long,
NbColonnes As
Integer) As DoubleApplication.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" a écrit dans le message
de
news:40779b4a$Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais
utiliser
pourcalculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage
de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le
message
denews:4077271c$Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme
des
xpremières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees",
Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule
pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Salut Claude,
Même si tu as trouvé ton bonheur, permets moi d'émettre quelques réserves
pour
l'utilisation de Application.Volatile.
Dans des modèles de chiffrier le moindrement complexe, ça ralentit le
machine en
provoquant des recalculs automatiques.
Mon conseil (tu en fais ce que tu veux) est de conserver la première
implantation VBA de MaSomme() (sans le App.Volatile) définie par Denis et
de
l'utiliser ainsi:
=masomme(DECALER(A1;;;5;2))
Ou même (beaucoup plus rapide), de te passer complètement d'une fonction
VBA et
d'y aller directement:
=SOMME(DECALER(A1;;;5;2))
Salutations,
Daniel M.
"Claude BRIGUET" <claude.briguet@swisscom.com> wrote in message
news:4077dc8a$1_2@news.bluewin.ch...
Re-bonjour,
C'est super génial, ça marche !
Il me manquais juste le "Application.Volatile".
Un super grand merci pour ton aide.
Je te souhaite de joyeuses fêtes de pâques (et à tous les autres aussi).
Claude
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:e5N2NquHEHA.3536@TK2MSFTNGP09.phx.gbl...
Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long,
NbColonnes As
Integer) As Double
Application.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))
End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" <claude.briguet@swisscom.com> a écrit dans le message
de
news:40779b4a$1_3@news.bluewin.ch...
Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais
utiliser
pour
calculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:edU88TqHEHA.3328@TK2MSFTNGP09.phx.gbl...
Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage
de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" <claude.briguet@swisscom.com> a écrit dans le
message
de
news:4077271c$1_2@news.bluewin.ch...
Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme
des
x
premières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees",
Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule
pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude
Salut Claude,
Même si tu as trouvé ton bonheur, permets moi d'émettre quelques réserves
pour
l'utilisation de Application.Volatile.
Dans des modèles de chiffrier le moindrement complexe, ça ralentit le
machine en
provoquant des recalculs automatiques.
Mon conseil (tu en fais ce que tu veux) est de conserver la première
implantation VBA de MaSomme() (sans le App.Volatile) définie par Denis et
de
l'utiliser ainsi:
=masomme(DECALER(A1;;;5;2))
Ou même (beaucoup plus rapide), de te passer complètement d'une fonction
VBA et
d'y aller directement:
=SOMME(DECALER(A1;;;5;2))
Salutations,
Daniel M.
"Claude BRIGUET" wrote in message
news:4077dc8a$Re-bonjour,
C'est super génial, ça marche !
Il me manquais juste le "Application.Volatile".
Un super grand merci pour ton aide.
Je te souhaite de joyeuses fêtes de pâques (et à tous les autres aussi).
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
'--------------------
Function MaSomme(PlageDeCellules As Range, NbLignes As Long,
NbColonnes As
Integer) As DoubleApplication.Volatile
MaSomme = Application.Sum(PlageDeCellules.Resize(NbLignes,
NbColonnes))End Function
'--------------------
Et dans la celllule :
La valeur minimum de NbLignes et NbColonnes est 1
=MaSomme(A1;NbLignes,NbColonnes)
Pour addtionner la plage A1;B5
=MaSomme(A1;5;2)
Salutations!
"Claude BRIGUET" a écrit dans le message
de
news:40779b4a$Merci michdenis,
Ta fonction est OK, mais je ne connais pas la zone que je vais
utiliser
pourcalculer.
Elle est dépendante d'une autre formule.
C'est pour cette raison que j'ai le paramètre "NombreLignesUtilisees".
Dans ce cas, ça ne marche pas.
Une autre idée ?
Merci d'avance et bonne journée.
Claude
"michdenis" a écrit dans le message de
news:Bonjour Claude,
Function MaSomme(PlageDeCellules as Range) As Double
MaSomme = Application..Sum(PlageDeCellules)
End Function
Et dans ta cellule tu entres le nom de ta fonction suivi de ta plage
de
cellules.
=MaSomme(A1:A10)
ou
=MaSomme(A1:A10;B5;C5:C10)
Salutations!
"Claude BRIGUET" a écrit dans le
message
denews:4077271c$Bonsoir à tous les couche-tard et bonjour à tous les lève-tôt,
Pour différentes raisons, j'ai créé une fonction qui fait une somme
des
xpremières valeurs de la colonne 1.
Function MaSomme(ByRef NombreLignesUtilisees As Double) As Double
MaSomme = Application.WorksheetFunction.Sum(Range(Cells(1, 1),
Cells(NombreLignesUtilisees, 1)))
End Function
Quand je change la valeur du paramètre "NombreLignesUtilisees",
Excel
recalcule le résultat de la fonction. Tout OK.
Mais quand je change un des chiffres de la colonne, il ne recalcule
pas.
Même un F9 ne change pas le résultat.
Est-ce que quelqu'un sait pourquoi et surtout comment faire ?
Un grand merci d'avance pour vos idées et solutions.
Bonne soirée.
Claude