Euh... on va dire soucis d'incrémentation par glissage...

Résolu/Fermé
Ghörgh Messages postés 4886 Date d'inscription mardi 19 janvier 2010 Statut Contributeur Dernière intervention 4 avril 2023 - Modifié par Ghörgh le 8/01/2014 à 15:35
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 8 janv. 2014 à 19:19
Bonjour à tous,

J'ai un soucis sur Excell (le 2010).

Je travaille sur un classeur avec 53 feuille.
Dans la feuille 53, je veux faire référence aux 52 autres feuilles.
Pour gagné du temps, j'aimerais pouvoir faire la chose suivante :
Sur la feuille 53,
A1 = A1 de la feuille 1
A2 = A1 de la feuille 2
A3 = A1 de la feuille 3
...etc...

Puis la même chose avec B1/C1 ...etc...

Le problème c'est qu'actuellement, dans ma case A1 de la feuille A3, j'ai la formule : ='S01'!$B$30
Et si je fais "glisser" (je connais pas le vrai terme ><), je garde la même formule... et je voudrais que mon 'S01' s'incrémente en 'S02', 'S03', 'S04'...etc...

J'espère avoir été assez clair pour que vous me compreniez.

Merci d'avance !

@++





Pastafarien en puissance!!!

5 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 8/01/2014 à 15:42
Bonjour
si vous êtes bien sur la ligne 1 et si vos noms de feuille sont bien tels que vous l'écrivez:
en B1
=INDIRECT("SO"&LIGNE()&"!B30")
si la 1° formule n'est pas sur la ligne 1 , corriger avec -X pour retrouver un selon le N° de ligne (par ex -1 sur ligne 2)
les apostrophes ne sont utiles que si vos noms de feuilles contiennent des blancs
B30 étant du texte immuable, les signes $ sont inutiles

crdlmnt


Errare humanum est, perseverare diabolicum
0
Ghörgh Messages postés 4886 Date d'inscription mardi 19 janvier 2010 Statut Contributeur Dernière intervention 4 avril 2023 1 241
8 janv. 2014 à 16:00
Yop !
Merci d'avoir pris le temps de me lire.

Je viens d'essayer la formule que tu me propose, mais il n'a pas l'air convaincu :-(

Pour préciser un peu sur les références :

Sur la feuille 53,
Dans la cellule B17, je veux faire apparaître le contenu de la cellule B31 de la feuille 1 (nommé 'S01'),
Dans la cellule B18, je veux faire apparaître le contenu de la cellule B31 de la feuille 2 (nommé 'S02).

J'avais donc rentré en B17 : =INDIRECT("S0"&LIGNE()&-16&"!B31)

Mais je n'ai obtenu qu'un message d'erreur me disant que la formule rentrée n'est pas valide.

Merci d'avance



0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
8 janv. 2014 à 16:06
Un & de trop

=INDIRECT("S0"&LIGNE()-16&"!B31)

crdlmnt
0
Ghörgh Messages postés 4886 Date d'inscription mardi 19 janvier 2010 Statut Contributeur Dernière intervention 4 avril 2023 1 241
8 janv. 2014 à 16:35
Re,
Ca ne marche toujours pas.

J'ai fait des tests pour essayer de comprendre...

Je pense qu'il ne prend pas le "S0"&ligne() comme une référence.

J'ai tester sur ma feuille 53, en B17, j'ai simplement mis : =INDIRECT("S0"&ligne()-16)

Et le logiciel me renvoie la valeur de ma cellule S1 de la feuille 53...

Merci
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
8 janv. 2014 à 17:32
Bonjour à tous,

essaye
=INDIRECT(TEXTE(LIGNE();"\S00\!")&CAR(64+COLONNE())&"1")

cordialement
0
Ghörgh Messages postés 4886 Date d'inscription mardi 19 janvier 2010 Statut Contributeur Dernière intervention 4 avril 2023 1 241
Modifié par Ghörgh le 8/01/2014 à 17:43
Re,
J'ai pu m'en sortir !

J'ai essayé ta formule JvDo mais po mieux

Du coup, ce que j'ai fait : j'ai triché, et j'ai rajouter une ligne (en 9) contenant S01,S02,S03 etc...

Ensuite, la formule =INDIRECT("'"&B9&"'"&"!B30") (en étant placé en B11)

Et là, plus qu'à glisser vers la droite, et mon B9 s'incrémente (B10, B11...), et je récupère bien ma bonne valeur dans ma ligne 11.

Merci pour votre aide à tous les deux en out cas !

Bonne soirée


EDIT : et du coup, Vaucluse, dans la formule de base que tu m'a donné, j'ai compris où ça marchait pas.
Il fallait encadré la référence de la feuille par des apostrophe, puis bien réencadré le tout par des guillemets.

Ca donne : =INDIRECT(" ' nom de feuille ' " & " réf cellule ")

Pastafarien en puissance!!!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
8 janv. 2014 à 17:49
Faux...voyez le fichier que j'ai déposé en fin de discussion(lien ci dessous)
Les apostrophes ne sont utiles, comme déjà signalé, que lorsque le nom de feuille comporte un blanc.
A moins bien, sur qu'il y en ait un que vous bous avez caché!
C'est l'apostrophe qui est indispensable avant le code cellule
https://www.cjoint.com/c/DAirRbJ8Uuc
Bonne rloute
0
Ghörgh Messages postés 4886 Date d'inscription mardi 19 janvier 2010 Statut Contributeur Dernière intervention 4 avril 2023 1 241
8 janv. 2014 à 17:54
Yop,
Je viens de regarder votre fichier.
Il y a une légère différence.

Vos feuilles sont nommés SO* au lieu de S0 (la lettre O au lieu du chiffre 0)

J'ai essayé de tout modifier en chiffre et ça ne marche pas sans l'apostrophe.

Par contre, pour ce qui est de votre formule, elle marche effectivement pas mal du tout, si ce n'est que pour les besoins de mon classeurs, il fallait que j'étire vers la droite, et non pas vers le bas. Du coup, ça aurait pu marché en changeant ligne() par colonne(), si les colonnes était référencé par des chiffres ;-)))

Merci en tout cas, je ne connaissais pas cette fonction indirect, qui peut être bien pratique !
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
8 janv. 2014 à 18:04
Parfait si le problème est résolu,

Effectivement, c'est bien avec COLONNE () (mais votre demande parlait de A1,A2,A3 ect...) qu'il faut fonctionner si les données sont en ligne.

Mais pour la bonne forme et pour les divers lecteurs possibles, quant aux apostrophes , même avec le 0, je maintiens...:-) voyez le fichier joint.

êtes vous sur que vos noms de feuille n'ont pas un blanc?

https://www.cjoint.com/c/DAir6Fv8e5Q

A moins que nous n'ayons pas le même excel?

Ceci dit, rien de grave puisque ça fonctionne avec les apostrophes de toutes façons dans tous les cas, alors n'en parlons plus.

Bonne route
crdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 8/01/2014 à 17:45
Merci Jvdo, mais on ne voit pas très bien pourquoi compliquer à ce point les choses simples qui fonctionnent

Voir ici, feuille EDIT qui envoie la valeur de A1 des 6 feuilles de A17 à A22

https://www.cjoint.com/c/DAirRbJ8Uuc

Pour avoir B30, il suffit de remplace A1 par B30


crdlmnt

Errare humanum est, perseverare diabolicum
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
8 janv. 2014 à 19:11
De rien Vaucluse

Tout simplement parce que ta formule intègre un "O" au lieu d'un "0" et que les noms des onglets doivent aller de "S01" à "S52".
Ta formule est donc mise en défaut dès que tu arrives dans les onglets "S10" et suivants.
Ca c'est pour expliquer la présence de la fonction TEXTE() qui intègre une possibilité de format bien pratique qui gère les indices 01 à 52.

Ensuite parce que Ghörgh voulait reporter la formule vers la droite avec incrémentation des colonnes.
Ce que j'ai vu de ta formule, c'est qu'elle ne répond pas à cette incrémentation de colonne.
D'où le CAR(64+COLONNE()).

Enfin, je ne vois pas trop ce qu'il y a de compliqué dans cette formule.

En revanche, je ne m'explique pas pourquoi Ghörgh n'a pas pu faire fonctionner ma formule. Voici un lien pour vérifier ce qu'elle fait : https://www.cjoint.com/?DAisVnGk3y7
C'est en format 97 - 2003 (pour ccm81). Il faut regarder l'onglet "récap" complètement à la fin.
J'ai laissé les macros de construction des feuilles pour ceux que ça intéresse.

Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
8 janv. 2014 à 19:19
Effectivement, excuses, car c'est une bonne raison, j'étais parti sur SO et non pas sur S0

on peut alors simplement faire
=INDIRECT("S"&SI(LIGNE()<10;"0";"")&LIGNE()&"!B30")

crdlmnt
0