Problème avec formule comportant valeur onglet précédent

Bonjour,

Sur un fichier de stats très simple, j'incrémente un onglet tous les ans....... STATS 2024, STATS 2025, etc...

Lorsque je copie l'onglet de l'année suivant, j'aimerai ne pas modifier mes formules pour aller chercher les valeurs présentes dans l'onglet d'avant !

Bref, plutôt que de changer le 4 en 5 dans la formule =SI(C21=0;"";'STATS 2024'!C21) je souhaiterais si possible que le 4 se transforme en cinq tout seul une fois que j'ai renommer mon onglet après copiage en STATS 2025.

J'ai essayé =SI(C21="";"";INDIRECT("'STATS"&B4-'1'!C21))............. en vain :-(

Je récupère si besoin le nom d'onglet dans la cellule A1 et les 4 chiffres de droites (202X) en B4

Merci par avance une fois de plus

Bonjour dasaquit,

Comme tu ne fourni pas de classeur, j'ai du créé un exemple imaginaire pour te proposer une technique sans VBA pour pouvoir alimenter automatiquement la copie d'onglet que tu réalises.

Le principe :

1 il faut d'abord isoler le nom de l'onglet de l'année dans une cellule éloignée (que tu pourras masquée). Pour cela on utilise la fonction cellule et comme les noms de tes onglets sont de structure identique, il suffit de prendre les 8 derniers caractères soit ;

=DROITE(CELLULE("nomfichier";A1);8)

que j'ai installé en cellule AA1

2 Ensuite en AA2 je caclule le nom de l'onglet An-1 =

="Stat"&TEXTE(CNUM(DROITE(AA1;4))-1;"@@")

3 dans la colonne AN-1 il suffit maintenant d'introduire la formule suivante :

=INDIRECT(ADRESSE(LIGNE();2;1;1;$AA$2))

Où je reconstitue l'adresse de la cellule dans l'onglet précédent précédé de la fonction INDIRECT qui permet de lire le contenu de la cellule dont on a calculé l'adresse.

Voir exemple ci-annexé

Donc la procédure c'est :

1 copier l'onglet de l'année pour créer l'année suivante

2 changer le nom du nouvel onglet

3 effacer manuellement les données de l'année en cours

Et tu es parti pour une nouvelle année

A toi d'adapter dans ton classeur (ou tu nous le transmets avec des exemples bidons) et nous le ferons pour toi.

Bonne continuation

11onglet.xlsx (11.72 Ko)

Bonsoir Chris1945,

Désolé je mets toujours une copie fichier mais ne pensais pas que pour une formule je devais le faire ; mille excuses.

J'essaie tout ça et te dis.

Encore MERCI

Bien à toi

Bonjour,

Je suis désolé mais ce n'est pas vraiment ce que je voyais ; je pense qu'il y a plus simple en imbriquant deux formules, et sans "embouser" deux cellules à cacher par la suite.

Comme expliqué j'extrais déjà en A2 le nom de l'onglet :

image

Sur la ligne 22 j'ai actuellement cette formule pour récupérer les valeurs de l'an passé :

=SI(C21=0;"";'STATS 2024'!C21)

image

Je pense donc qu'en imbriquant cette formule et la tienne ="Stat"&TEXTE(CNUM(DROITE(A2;4))-1;"@@") ça devrait pouvoir le faire, qu'en penses tu ?

Encore merci pour ton aide. Juste lui dire quelle cellule à aller chercher dans STATS2024..... en l'occurrence la C22 ! j'espérai un truc un peu comme ça =@SI(C21=0;"";INDIRECT("'STATS"&B4-1&"'!C22")) mais ça ne fonctionne pas (#REF!)

11stats-test.xlsx (16.86 Ko)

Bonjour,

Je ne pourrai pas t'aider en utilisant des formules car ces dernières ne sont pas mon fort
Mais avec VBA aucun souci pour moi, voici ce que je te propose

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    annee = Right(Range("A2"), 4)
    feuille = "STATS " & annee
    Range("C22") = Sheets(feuille).Range("C21")
End Sub

Bonjour à tous,

Essayez :

=INDIRECT("'STATS "&DROITE($A$2;4)-1&"'!"&ADRESSE(21;COLONNE();2))

Hey !

Merci tous les deux, j'essaie ça en commençant par la formule et vous dis.

Vous êtes super tous les deux

Merci

Re ;-)

Merci BeGood ta formule fonctionne du tonnerre ; tu pourrais quand même m'expliquer comment l'adresse fonctionne s'il te plait ? Que veut dire ADRESSE(21;COLONNE();2) ?!

En gros, comment faire pour la colonne P où je vais chercher également le N-1 stp ?

image

Merci également pour le bout de code Jacky, je le garde de côté pour un autre projet.

Encore un grand MERCI

Bonjour,

Le but est d'aller chercher la cellule C21, puis D21, etc

Pour faire varier la colonne on utilise ADRESSE qui renvoie la référence d'un cellule en donnant son numéro de ligne (ici 21) et son numéro de colonne (ici COLONNE()) qui donne la colonne courante et variable lors de la recopie, le 2 est pour avoir la ligne fixe et la colonne relative justement.

Pour la colonne P on peut faire simplement :

=INDIRECT("'STATS "&DROITE($A$2;4)-1&"'!O"&LIGNE())

La colonne O est fixe et on fait récupère le numéro de la ligne courante avec LIGNE()

Attention ces formules supposent que les tableaux soient à la même place sur les différentes feuilles.

T'es vraiment super et réactif MERCI beaucoup.

Rechercher des sujets similaires à "probleme formule comportant valeur onglet precedent"