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

[Résolu/Fermé]
Signaler
Messages postés
4874
Date d'inscription
mardi 19 janvier 2010
Statut
Contributeur
Dernière intervention
3 juin 2021
-
Messages postés
26194
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 septembre 2021
-
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

Messages postés
26194
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 septembre 2021
6 067
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
Messages postés
4874
Date d'inscription
mardi 19 janvier 2010
Statut
Contributeur
Dernière intervention
3 juin 2021
1 162
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



Messages postés
26194
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 septembre 2021
6 067
Un & de trop

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

crdlmnt
Messages postés
4874
Date d'inscription
mardi 19 janvier 2010
Statut
Contributeur
Dernière intervention
3 juin 2021
1 162
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
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
847
Bonjour à tous,

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

cordialement
Messages postés
4874
Date d'inscription
mardi 19 janvier 2010
Statut
Contributeur
Dernière intervention
3 juin 2021
1 162
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!!!
Messages postés
26194
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 septembre 2021
6 067
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
Messages postés
4874
Date d'inscription
mardi 19 janvier 2010
Statut
Contributeur
Dernière intervention
3 juin 2021
1 162
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 !
Messages postés
26194
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 septembre 2021
6 067
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
Messages postés
26194
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 septembre 2021
6 067
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
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
847
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
Messages postés
26194
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
28 septembre 2021
6 067
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