Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

un petite fonction qui fait ce qu'elle veut

1 réponse
Avatar
olitoto
Bonjour à tous,

Je vous pose un pb que je n'arrive pas à résoudre ...

J'ai deux classeurs d'ouverts : le 1 et le 2.

--- Dans le classeur 1 j'ai une fonction qui totalise les valeurs pêchées
dans la même adresse de cellule, mais sur une dizaine d'onglets, la voici :

"Function SommeOnglet79(début, fin, c As Range) ' début = index du premier
onglet , fin = index du dernier onglet, c = adresse
Application.Volatile
total = 0
For s = début To fin
total = Sheets(s).Range(c.Address).Value + total
Next s
SommeOnglet79 = total
End Function"


--- Dans le classeur 2, j'ai la même fonction qui fait la même chose , la
voici :

"Function SommeOnglet16(début, fin, c As Range) ' début = index du premier
onglet , fin = index du dernier onglet, c = adresse
Application.Volatile
t = 0
total = 0
For s = début To fin
total = Sheets(s).Range(c.Address).Value + total
t = t + 1
Next s
SommeOnglet16 = total
End Function"

Et voilà le noeud du pb :
Si je lance le recalcul par la touche f9, quand un des classeurs est activé,
les données de la fonction de l'autre classeur sont modifiées avec de
fausses valeurs.

Si quelqu'un a la solution, je suis preneur avec plaisir car je suis dessus
depuis quelques heures et je ne trouve pas ....

Merci à tous !

Olivier

1 réponse

Avatar
JB
Bonsoir,

Pourquoi tu n'utilises pas la fonction Somme() avec la syntaxe?

=SOMME(OngletDébut:OngletFin!cellule/champ)

http://cjoint.com/?ltr3k1t50q

JB



Bonjour à tous,

Je vous pose un pb que je n'arrive pas à résoudre ...

J'ai deux classeurs d'ouverts : le 1 et le 2.

--- Dans le classeur 1 j'ai une fonction qui totalise les valeurs pêch ées
dans la même adresse de cellule, mais sur une dizaine d'onglets, la voi ci :

"Function SommeOnglet79(début, fin, c As Range) ' début = index du premier
onglet , fin = index du dernier onglet, c = adresse
Application.Volatile
total = 0
For s = début To fin
total = Sheets(s).Range(c.Address).Value + total
Next s
SommeOnglet79 = total
End Function"


--- Dans le classeur 2, j'ai la même fonction qui fait la même chose , la
voici :

"Function SommeOnglet16(début, fin, c As Range) ' début = index du premier
onglet , fin = index du dernier onglet, c = adresse
Application.Volatile
t = 0
total = 0
For s = début To fin
total = Sheets(s).Range(c.Address).Value + total
t = t + 1
Next s
SommeOnglet16 = total
End Function"

Et voilà le noeud du pb :
Si je lance le recalcul par la touche f9, quand un des classeurs est acti vé,
les données de la fonction de l'autre classeur sont modifiées avec de
fausses valeurs.

Si quelqu'un a la solution, je suis preneur avec plaisir car je suis dess us
depuis quelques heures et je ne trouve pas ....

Merci à tous !

Olivier