Fonction perso et mauvais rafraichissement (autre feuille)
4 réponses
Trirème
:-) Mesdames
:-) Messieurs
J'ai créé une fonction perso qui retourne la somme de plusieurs cellules
même si l'une d'elles contient une erreur. Elle retourne #VALEUR! si l'une
d'elle contient du texte.
C'est son fonctionnement normal et voici son code (source MPFE, adapté, merci)
Function SSE(Plage As Range) As Double
'Somme Sans tenir compte des Erreurs
Application.Volatile
x = 0
For Each c In Plage
If IsError(c) Then x = x + 0 Else x = x + c.Value
Next
SSE = x
End Function
Les cellules à sommer étant disjointes, j'ai créé un nom décrivant ces
cellules disjointes et c'est ce nom que je passe en référence. Exemple
SSE(Total_Valo_2005).
Avec, Total_Valo_2005 faisant référence à
=Formulaire!$G$8;Formulaire!$G$13;Formulaire!$G$15;Formulaire!$G$17;Formulaire!$G$19;Formulaire!$G$21;Formulaire!$G$23;Formulaire!$G$25;Formulaire!$G$27;Formulaire!$G$28;Formulaire!$G$29
(Notez que le nom de la feuille - Formulaire - est précisé explicitement)
Avec Excel 2002 je n'ai pas de problème de mise à jour. Cela fonctionne avec
ou sans l'option Application.Volatile. L'erreur que j'ai également.
Lorsque je bascule dans un autre onglet -Machin- de mon classeur, que j'y
saisi des données et que je retourne à mon onglet Formulaire, le résultat de
ma fonction perso SSE est abusivement modifié et correspond à la somme des
cellules décrites dans le nom 'Total_Valo_2005' mais pour la feuille Machin :
=Machin!$G$8;Machin!$G$13;Machin!$G$15;Machin!$G$17...
Pourquoi et surtout comment l'éviter s'il vous plaît ?
Je précise que je n'ai pas ce problème si le nom 'Total_Valo_2005' fait
référence à une plage de cellules contigües. Notez alors que dans ce cas je
n'aurai pas eu la nécessité de créer ce nom, mais je ne sais pas passer à ma
fonction SSE(Plage) des références disjointes.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Trirène,
J'ai tenté de reproduire ta problématique sur excel 2003. Je n'y ai pas réussi ! Une vraie chance !!! ;-))
Salutations!
"Trirème" a écrit dans le message de news: :-) Mesdames :-) Messieurs
J'ai créé une fonction perso qui retourne la somme de plusieurs cellules même si l'une d'elles contient une erreur. Elle retourne #VALEUR! si l'une d'elle contient du texte. C'est son fonctionnement normal et voici son code (source MPFE, adapté, merci)
Function SSE(Plage As Range) As Double 'Somme Sans tenir compte des Erreurs Application.Volatile x = 0 For Each c In Plage If IsError(c) Then x = x + 0 Else x = x + c.Value Next SSE = x End Function
Les cellules à sommer étant disjointes, j'ai créé un nom décrivant ces cellules disjointes et c'est ce nom que je passe en référence. Exemple SSE(Total_Valo_2005). Avec, Total_Valo_2005 faisant référence à =Formulaire!$G$8;Formulaire!$G$13;Formulaire!$G$15;Formulaire!$G$17;Formulaire!$G$19;Formulaire!$G$21;Formulaire!$G$23;Formulaire!$G$25;Formulaire!$G$27;Formulaire!$G$28;Formulaire!$G$29 (Notez que le nom de la feuille - Formulaire - est précisé explicitement)
Avec Excel 2002 je n'ai pas de problème de mise à jour. Cela fonctionne avec ou sans l'option Application.Volatile. L'erreur que j'ai également.
Lorsque je bascule dans un autre onglet -Machin- de mon classeur, que j'y saisi des données et que je retourne à mon onglet Formulaire, le résultat de ma fonction perso SSE est abusivement modifié et correspond à la somme des cellules décrites dans le nom 'Total_Valo_2005' mais pour la feuille Machin : =Machin!$G$8;Machin!$G$13;Machin!$G$15;Machin!$G$17...
Pourquoi et surtout comment l'éviter s'il vous plaît ?
Je précise que je n'ai pas ce problème si le nom 'Total_Valo_2005' fait référence à une plage de cellules contigües. Notez alors que dans ce cas je n'aurai pas eu la nécessité de créer ce nom, mais je ne sais pas passer à ma fonction SSE(Plage) des références disjointes.
Merci pour un coup de pouce Cordialement Trirème
Bonjour Trirène,
J'ai tenté de reproduire ta problématique sur excel 2003. Je n'y ai pas réussi ! Une vraie chance !!! ;-))
Salutations!
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de news: 9DE2E49C-6343-4826-A712-FFCAF98E6B90@microsoft.com...
:-) Mesdames
:-) Messieurs
J'ai créé une fonction perso qui retourne la somme de plusieurs cellules
même si l'une d'elles contient une erreur. Elle retourne #VALEUR! si l'une
d'elle contient du texte.
C'est son fonctionnement normal et voici son code (source MPFE, adapté, merci)
Function SSE(Plage As Range) As Double
'Somme Sans tenir compte des Erreurs
Application.Volatile
x = 0
For Each c In Plage
If IsError(c) Then x = x + 0 Else x = x + c.Value
Next
SSE = x
End Function
Les cellules à sommer étant disjointes, j'ai créé un nom décrivant ces
cellules disjointes et c'est ce nom que je passe en référence. Exemple
SSE(Total_Valo_2005).
Avec, Total_Valo_2005 faisant référence à
=Formulaire!$G$8;Formulaire!$G$13;Formulaire!$G$15;Formulaire!$G$17;Formulaire!$G$19;Formulaire!$G$21;Formulaire!$G$23;Formulaire!$G$25;Formulaire!$G$27;Formulaire!$G$28;Formulaire!$G$29
(Notez que le nom de la feuille - Formulaire - est précisé explicitement)
Avec Excel 2002 je n'ai pas de problème de mise à jour. Cela fonctionne avec
ou sans l'option Application.Volatile. L'erreur que j'ai également.
Lorsque je bascule dans un autre onglet -Machin- de mon classeur, que j'y
saisi des données et que je retourne à mon onglet Formulaire, le résultat de
ma fonction perso SSE est abusivement modifié et correspond à la somme des
cellules décrites dans le nom 'Total_Valo_2005' mais pour la feuille Machin :
=Machin!$G$8;Machin!$G$13;Machin!$G$15;Machin!$G$17...
Pourquoi et surtout comment l'éviter s'il vous plaît ?
Je précise que je n'ai pas ce problème si le nom 'Total_Valo_2005' fait
référence à une plage de cellules contigües. Notez alors que dans ce cas je
n'aurai pas eu la nécessité de créer ce nom, mais je ne sais pas passer à ma
fonction SSE(Plage) des références disjointes.
J'ai tenté de reproduire ta problématique sur excel 2003. Je n'y ai pas réussi ! Une vraie chance !!! ;-))
Salutations!
"Trirème" a écrit dans le message de news: :-) Mesdames :-) Messieurs
J'ai créé une fonction perso qui retourne la somme de plusieurs cellules même si l'une d'elles contient une erreur. Elle retourne #VALEUR! si l'une d'elle contient du texte. C'est son fonctionnement normal et voici son code (source MPFE, adapté, merci)
Function SSE(Plage As Range) As Double 'Somme Sans tenir compte des Erreurs Application.Volatile x = 0 For Each c In Plage If IsError(c) Then x = x + 0 Else x = x + c.Value Next SSE = x End Function
Les cellules à sommer étant disjointes, j'ai créé un nom décrivant ces cellules disjointes et c'est ce nom que je passe en référence. Exemple SSE(Total_Valo_2005). Avec, Total_Valo_2005 faisant référence à =Formulaire!$G$8;Formulaire!$G$13;Formulaire!$G$15;Formulaire!$G$17;Formulaire!$G$19;Formulaire!$G$21;Formulaire!$G$23;Formulaire!$G$25;Formulaire!$G$27;Formulaire!$G$28;Formulaire!$G$29 (Notez que le nom de la feuille - Formulaire - est précisé explicitement)
Avec Excel 2002 je n'ai pas de problème de mise à jour. Cela fonctionne avec ou sans l'option Application.Volatile. L'erreur que j'ai également.
Lorsque je bascule dans un autre onglet -Machin- de mon classeur, que j'y saisi des données et que je retourne à mon onglet Formulaire, le résultat de ma fonction perso SSE est abusivement modifié et correspond à la somme des cellules décrites dans le nom 'Total_Valo_2005' mais pour la feuille Machin : =Machin!$G$8;Machin!$G$13;Machin!$G$15;Machin!$G$17...
Pourquoi et surtout comment l'éviter s'il vous plaît ?
Je précise que je n'ai pas ce problème si le nom 'Total_Valo_2005' fait référence à une plage de cellules contigües. Notez alors que dans ce cas je n'aurai pas eu la nécessité de créer ce nom, mais je ne sais pas passer à ma fonction SSE(Plage) des références disjointes.
Merci pour un coup de pouce Cordialement Trirème
Jacky
Bonjour Trirème
et avec:
If IsNumeric(c) Then x = x + c.Value
Cela donne quoi ??
JJ
"Trirème" a écrit dans le message de news:
:-) Mesdames :-) Messieurs
J'ai créé une fonction perso qui retourne la somme de plusieurs cellules même si l'une d'elles contient une erreur. Elle retourne #VALEUR! si l'une d'elle contient du texte. C'est son fonctionnement normal et voici son code (source MPFE, adapté, merci)
Function SSE(Plage As Range) As Double 'Somme Sans tenir compte des Erreurs Application.Volatile x = 0 For Each c In Plage If IsError(c) Then x = x + 0 Else x = x + c.Value Next SSE = x End Function
Les cellules à sommer étant disjointes, j'ai créé un nom décrivant ces cellules disjointes et c'est ce nom que je passe en référence. Exemple SSE(Total_Valo_2005). Avec, Total_Valo_2005 faisant référence à
(Notez que le nom de la feuille - Formulaire - est précisé explicitement)
Avec Excel 2002 je n'ai pas de problème de mise à jour. Cela fonctionne avec
ou sans l'option Application.Volatile. L'erreur que j'ai également.
Lorsque je bascule dans un autre onglet -Machin- de mon classeur, que j'y saisi des données et que je retourne à mon onglet Formulaire, le résultat de
ma fonction perso SSE est abusivement modifié et correspond à la somme des cellules décrites dans le nom 'Total_Valo_2005' mais pour la feuille Machin :
Pourquoi et surtout comment l'éviter s'il vous plaît ?
Je précise que je n'ai pas ce problème si le nom 'Total_Valo_2005' fait référence à une plage de cellules contigües. Notez alors que dans ce cas je
n'aurai pas eu la nécessité de créer ce nom, mais je ne sais pas passer à ma
fonction SSE(Plage) des références disjointes.
Merci pour un coup de pouce Cordialement Trirème
Bonjour Trirème
et avec:
If IsNumeric(c) Then x = x + c.Value
Cela donne quoi ??
JJ
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de
news:9DE2E49C-6343-4826-A712-FFCAF98E6B90@microsoft.com...
:-) Mesdames
:-) Messieurs
J'ai créé une fonction perso qui retourne la somme de plusieurs cellules
même si l'une d'elles contient une erreur. Elle retourne #VALEUR! si l'une
d'elle contient du texte.
C'est son fonctionnement normal et voici son code (source MPFE, adapté,
merci)
Function SSE(Plage As Range) As Double
'Somme Sans tenir compte des Erreurs
Application.Volatile
x = 0
For Each c In Plage
If IsError(c) Then x = x + 0 Else x = x + c.Value
Next
SSE = x
End Function
Les cellules à sommer étant disjointes, j'ai créé un nom décrivant ces
cellules disjointes et c'est ce nom que je passe en référence. Exemple
SSE(Total_Valo_2005).
Avec, Total_Valo_2005 faisant référence à
(Notez que le nom de la feuille - Formulaire - est précisé explicitement)
Avec Excel 2002 je n'ai pas de problème de mise à jour. Cela fonctionne
avec
ou sans l'option Application.Volatile. L'erreur que j'ai également.
Lorsque je bascule dans un autre onglet -Machin- de mon classeur, que j'y
saisi des données et que je retourne à mon onglet Formulaire, le résultat
de
ma fonction perso SSE est abusivement modifié et correspond à la somme des
cellules décrites dans le nom 'Total_Valo_2005' mais pour la feuille
Machin :
J'ai créé une fonction perso qui retourne la somme de plusieurs cellules même si l'une d'elles contient une erreur. Elle retourne #VALEUR! si l'une d'elle contient du texte. C'est son fonctionnement normal et voici son code (source MPFE, adapté, merci)
Function SSE(Plage As Range) As Double 'Somme Sans tenir compte des Erreurs Application.Volatile x = 0 For Each c In Plage If IsError(c) Then x = x + 0 Else x = x + c.Value Next SSE = x End Function
Les cellules à sommer étant disjointes, j'ai créé un nom décrivant ces cellules disjointes et c'est ce nom que je passe en référence. Exemple SSE(Total_Valo_2005). Avec, Total_Valo_2005 faisant référence à
(Notez que le nom de la feuille - Formulaire - est précisé explicitement)
Avec Excel 2002 je n'ai pas de problème de mise à jour. Cela fonctionne avec
ou sans l'option Application.Volatile. L'erreur que j'ai également.
Lorsque je bascule dans un autre onglet -Machin- de mon classeur, que j'y saisi des données et que je retourne à mon onglet Formulaire, le résultat de
ma fonction perso SSE est abusivement modifié et correspond à la somme des cellules décrites dans le nom 'Total_Valo_2005' mais pour la feuille Machin :
Pourquoi et surtout comment l'éviter s'il vous plaît ?
Je précise que je n'ai pas ce problème si le nom 'Total_Valo_2005' fait référence à une plage de cellules contigües. Notez alors que dans ce cas je
n'aurai pas eu la nécessité de créer ce nom, mais je ne sais pas passer à ma
fonction SSE(Plage) des références disjointes.
Merci pour un coup de pouce Cordialement Trirème
Trirème
Bonjour Trirène,
J'ai tenté de reproduire ta problématique sur excel 2003. Je n'y ai pas réussi ! Une vraie chance !!! ;-))
Et quid d'Excel 2002 ? Merci mais tu comprendras que ça ne me réjouis qu'à moitié.
J'en profite pour préciser que depuis tout à l'heure je m'en sors en écrivant =sse(E8)+sse(E13)+sse(E15)+sse(E17)+sse(E19)+sse(E21)+sse(E23)+sse(E25)+sse(E27)+sse(E28)+sse(E29) C'est une alternative efficace mais pas très propre quand même.
Je suis malgré tout à l'écoute de toute proposition. A plus Trirème
Bonjour Trirène,
J'ai tenté de reproduire ta problématique sur excel 2003. Je n'y ai pas réussi ! Une vraie chance !!! ;-))
Et quid d'Excel 2002 ?
Merci mais tu comprendras que ça ne me réjouis qu'à moitié.
J'en profite pour préciser que depuis tout à l'heure je m'en sors en
écrivant
=sse(E8)+sse(E13)+sse(E15)+sse(E17)+sse(E19)+sse(E21)+sse(E23)+sse(E25)+sse(E27)+sse(E28)+sse(E29)
C'est une alternative efficace mais pas très propre quand même.
Je suis malgré tout à l'écoute de toute proposition.
A plus
Trirème
J'ai tenté de reproduire ta problématique sur excel 2003. Je n'y ai pas réussi ! Une vraie chance !!! ;-))
Et quid d'Excel 2002 ? Merci mais tu comprendras que ça ne me réjouis qu'à moitié.
J'en profite pour préciser que depuis tout à l'heure je m'en sors en écrivant =sse(E8)+sse(E13)+sse(E15)+sse(E17)+sse(E19)+sse(E21)+sse(E23)+sse(E25)+sse(E27)+sse(E28)+sse(E29) C'est une alternative efficace mais pas très propre quand même.
Je suis malgré tout à l'écoute de toute proposition. A plus Trirème
Trirème
Bonjour Trirème
et avec:
If IsNumeric(c) Then x = x + c.Value
Cela donne quoi ??
Idem. Je viens de vérifier, j'ai également ça avec Excel 2000
Donc Pb avec Ex 2000, Ex 2002 et pas Ex 2003. Merci de ton intérêt.
Trirème
Bonjour Trirème
et avec:
If IsNumeric(c) Then x = x + c.Value
Cela donne quoi ??
Idem.
Je viens de vérifier, j'ai également ça avec Excel 2000
Donc Pb avec Ex 2000, Ex 2002 et pas Ex 2003.
Merci de ton intérêt.