Excel - formule sous format texte

Excel - formule sous format texte - Logiciels - Windows & Software

Marsh Posté le 04-11-2009 à 12:35:37    

Bonjour,
 
je travaille sous excel 2007 en anglais.
Je dispose de plusieurs onglet de meme format "feuille1" à "feuille 10"
 
je souhaite faire une feuille "total" qui somme ces onglets. J'utilise donc une formule du type :  
 
=SUM(feuille1:feuille10!C1)
 
Jusque là tout va bien. mais le probleme vient du fait que les feuilles 2 à 10 sont régulierement supprimées et recrées via une macro VBA. Et lors de la suppression, excel met automatiquement à jour ma formule par :
 
=SUM(feuille1!C1)
 
Pour eviter ceci je souhaitais passer ma formule en texte. Par exemple écrire en A1 : "feuille1:feuille10!"
puis sur les cellules sommant mes onglets : =sum( $A$1 & CELL("address" ) ).
 
Bien sur ça ne marche pas (erreur : #VALUE ). J'ai essayé plusieurs variantes. j'arrive à afficher "=SUM(feuille1:feuille10!C1)" mais pas à le calculer.
 
J'aimerai pouvoir trouver une formule sans passer par VBA. Une idée?
Merci
 

Reply

Marsh Posté le 04-11-2009 à 12:35:37   

Reply

Marsh Posté le 04-11-2009 à 12:38:38    

Oui, il faut utiliser INDIRECT()
 

Reply

Marsh Posté le 04-11-2009 à 12:55:02    

merci J'avais oublié la fonction indirect() et je pense etre dans la bonne direction du coup. mais ça bloque toujours.
 
ça marche bien si j'ai qu'un seul onglet.
je peut mettre en A1 : "feuille1!"
et ensuite me servir de la formule =indirect( $A$1 & CELL("address" ) )
 
mais avec en A1 : "feuille1:feuille10!", et en devant intégrer le fonction sum, je n'y arrive plus.
 
SUM(indirect( $A$1 & CELL("address" ) ) ) me retourne une erreur #REF
je suis tout pres mais je bloque...
 

Reply

Marsh Posté le 04-11-2009 à 17:02:16    

Hello
 
A mon avis le SUM est a mettre dans le INDIRECT car Feuil1:Feuil10!A1 n'est pas une expression valide pour Excel.
 
Pour preuve, saisi dans Excel =Feuil1:Feuil10!A1 il va te renvoyer #REF!

 
 
Edit : un truc comme ca devrait rouler pour sommer les cellules A1 de Feuil1 à Feuil10
 
=SOMMEPROD(SOMME.SI(INDIRECT("Feuil"&LIGNE(INDIRECT("1:10" ))&"!A1" );">0" ))
 
A toi d'y adapter en saisissant Feuil dans une cellule et 1:10 dans une autre etc.


Message édité par SuppotDeSaTante le 04-11-2009 à 17:21:15

---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed