christianwtd a écrit :
Henri Boyet a écrit :
Bonjour,
Dans la cellule E101, j'ai la formule "=E48+SOMME(C50:C100)"
Dans la cellule E145, j'ai la formule "=E101+SOMME(C103:C144)"
Dans la cellule E202, j'ai la formule "=E145+SOMME(C147:C201)"
etc
Toutes les cellules de la colonne E sont vides, sauf celles contenant
les formules comme ci-dessus. Le problème est que ces cellules non
vides n'ont pas un écart constant et que je ne peux pas allonger ma
feuille avec un simple copier-coller ; je suis obligé de modifier à
la main les références des cellules dans la formule. Il faudrait donc
que je puisse trouver l'adresse de la première cellule non vide
rencontrée en remontant la colonne.
Je suppose qu'il faudrait utiliser une subtile combinaison de
ESTVIDE, ESTNA et RECHERCHEV( ) mais malgré mes recherches dans les
how-to et le site de Christian, je ne m'en sors pas.
Merci pour toute aide,
Henri
Bonjour Henri, et tout le monde,
Ma réponse est peut-être approximative.
D'abord, je te conseille de placer cette formule dans une colonne proche
=LIGNE()*ESTNUM(C50)
si tu est dans la ligne 50, et ensuite tu recopies la formule
Ensuite, pour connaître la ligne qui contient la première valeur :
=MIN(cellule début:cellule fin)
et
=MAX(cellule début:cellule fin)
pour lire la plage des =LIGNE()*ESTNUM(xxxx)
Suite...
Je décompose ta première formule, il te suffira d'adapter pour les autres
SOMME(C50:C100)
Il faut jouer avec le couple INDIRECT et ADRESSE
Pour C50
=ADRESSE(50; 3)
retourne $C$50
A noter (pour info) le dernier paramètre optionnel de 1 à 4. Si tu
écris :
=ADRESSE(50; 3; 4)
retourne C50 (adressage relatif)
Pour C100
=ADRESSE(100; 3)
retourne $C$100
Pour assembler :
=ADRESSE(50; 3) & ":" & ADRESSE(100; 3)
retourne $C$50:$C$100
Pour info, la fonction CONCATENER est totalement inutile...
Ensuite il faut appliquer INDIRECT.
=INDIRECT(ADRESSE(50; 3) & ":" & ADRESSE(100; 3))
En l'état, c'est une erreur qui est retournée
Donc, au final :
=SOMME(INDIRECT(ADRESSE(50; 3) & ":" & ADRESSE(100; 3)))
Te fournira le bon résultat, puisqu'on arrive (ouf) à l'équivalent de :
=SOMME(C50:C100)
J'espère que tu as pigé, c'est pas très évident. J'espère surtout
pouvoir t'aider un peu.
Bon surf,
Christian
Bonsoir Christian et grand merci pour ta réponse rapide et très développée !
Cela n'a pas été simple. Je n'ai pas fait exactement comme tu
l'indiquais, peut-être parce que je n'avais pas assez bien décrit ma
feuille. Mais pour l'essentiel, je t'ai suivi :
Dans les lignes de données, 2 cellules supplémentaires :
En F100 : =LIGNE()*ESTNUM(E100)
En G100 : =MAX($F$1:F99)
Dans la ligne de calculs, 3 cellules supplémentaires :
En F101 : =LIGNE()*ESTNUM(E101)
En G101 : =MAX($F$1:F100)
En H101 : =ADRESSE(2+G101;3;1)
et miracle, en E101, à la place de mon ancienne formule :
=INDIRECT("E"&G101)+SOMME(INDIRECT(H101):C100)
Je suppose que je pourrais condenser pour avoir une formule plus longue
et moins de colonnes, mais pour l'instant, ça me convient très bien, il
va suffire de cacher les colonnes supplémentaires.
Je pense que ça aurait été plus simple avec la notation RC mais
apparemment, elle n'est toujours pas présente.
Henri
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org