Signaler

Remplacer chiffres dans une fonction

Posez votre question cfl0fl0 7Messages postés samedi 10 septembre 2016Date d'inscription 19 octobre 2016 Dernière intervention - Dernière réponse le 19 oct. 2016 à 20:45
Bonjour,
voici ma formule dans ma feuille S1 en case A1
=SOMME(INDIRECT(C2&"!L10:!L12");INDIRECT(C2&"!AI10:!AI12");INDIRECT(C2&"!BF10:!BF12");INDIRECT(C2&"!CC10:!CC12");INDIRECT(C2&"!CZ10:!CZ12");INDIRECT(C2&"!DW10:!DW12");INDIRECT(C2&"!ET10:!ET12"))
Dans ma feuille S2 je veux changer le nombre 10 par 13 et le nombre 12 par 15
Dans ma feuille S3 je veux changer le nombre 13 par 16 et le nombre 15 par 18
Etc....
Existe-t-il une formule pour changer la fonction automatiquement ?
Afficher la suite 
Utile
+0
moins plus
Bonjour cfl0fl0,

Peut-être en utilisant, en plus de la fonction INDIRECT(),
la fonction DECALER() ; et avec un paramétrage judicieux !

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».

Cordialement.  😊
Ajouter un commentaire
Utile
+0
moins plus
Merci pour cette réponse, ais je ne trouve pas comment inscrire cette formule correctement.
albkan 1669Messages postés samedi 26 mars 2016Date d'inscription 24 novembre 2016 Dernière intervention - 19 oct. 2016 à 19:40
 
Remarques bien que sur ta 1ère feuille S1, tu as au départ 10 et 12.

Par rapport à 10 et 12 de S1 :

    Sur ta feuille S2, tu veux à la place 13 et 15, soit :   +3 lignes.
    Sur ta feuille S3, tu veux à la place 16 et 18, soit :   +6 lignes.

    Sur ta feuille S4, tu veux à la place 19 et 21, soit :   +9 lignes.
    Sur ta feuille S5, tu veux à la place 22 et 24, soit : +12 lignes.

etc...

Pour S4 et S5, ce sont des extrapolations (selon ton énoncé).

Mets dans une cellule de ton choix le n° de feuille ; exemple :
en B2 : 1 pour S1 ; 2 pour S2 ; 3 pour S3 ; 4 pour S4 ; etc...

Pour n lignes plus bas, tu peux utiliser : =DECALER(référence;(B2-1)*3;0)

Ou si tu préfères (c'est mieux si tu ne te trompes pas en numérotant) :

Mets dans une cellule de ton choix le n° de feuille - 1 ; exemple :
en B2 : 0 pour S1 ; 1 pour S2 ; 2 pour S3 ; 3 pour S4 ; etc...

Pour n lignes plus bas, tu peux utiliser : =DECALER(référence;B2*3;0)

-----------------------------------------------------------

D'autre part, dans ta formule, tu as fait la même erreur que pour celle de ton sujet
« Remplacer nom de feuille dans formule » : pas de « ! » après « : » =>

=SOMME(INDIRECT(C2&"!L10:!L12");INDIRECT(C2&"!AI10:!AI12");INDIRECT(C2&"!BF10:!BF12");INDIRECT(C2&"!CC10:!CC12");INDIRECT(C2&"!CZ10:!CZ12");INDIRECT(C2&"!DW10:!DW12");INDIRECT(C2&"!ET10:!ET12"))

doit devenir :

=SOMME(INDIRECT(C2&"!L10:L12");INDIRECT(C2&"!AI10:AI12");INDIRECT(C2&"!BF10:BF12");INDIRECT(C2&"!CC10:CC12");INDIRECT(C2&"!CZ10:CZ12");INDIRECT(C2&"!DW10:DW12");INDIRECT(C2&"!ET10:ET12"))

Tu dois voir le « ! » comme un caractère qui termine un nom de feuille et donc
le définit comme un nom de feuille ; ainsi : S1! est bien la feuille « S1 » alors
que S1 est la cellule S1. Donc S1!S5 est la cellule S5 de la feuille S1 ; et :
S1!S5:S18 est la plage de la colonne S, lignes 5 à 18, de la feuille S1. Vu ?  😉
 
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Bonjour

Comme vous ne changez que les N° le plus simple semble être de composer vos codes indirects comme suit:
  • répérer deux cellules vides hors champ, ,exemple XY1 et XY2
  • composer tous vos codes indirect dans la formule comme suit:


.....INDIRECT(C2&"!L"&XY1&":L"&XY2).....
  • vous n'aurez plus qu'à placer les N° de lignes voulus dans les cellules XX1 et XX2


crdlmnt







Ajouter un commentaire
Utile
+0
moins plus
Merci pour vos réponses mais je ne comprends rien
Je laisse tomber et vais tout taper cellule par cellule avec mes petits doigts.
Vaucluse 18197Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 23 novembre 2016 Dernière intervention - 19 oct. 2016 à 20:45
C'e"st vous qui voyez, mais je précise q car ce n'est quand même pas compliqué
quand vous écrivez dans la formule:

INDIRECT(C2&"!L"&XY1&":L"&XY2)

et que vous placez 10 en cellule XY1 et 12 en XY2, cette écriture équivaut à :

INDIRECT(C2&"!L10:L12")

et donc les adresses s'adaptent aux valeurs que vous avez placées en XY1 et XY2, différentes pour chaque feuille
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !