Entrer dans une formule "feuille précédente"

rhyss -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Soient les feuilles 1, 2, 3... d'un classeur.
Dans la feuille 1 (semaine 1) cellule A1 "!" pour signaler un impayé.
Dans la feuille 2 (semaine 2) cellule A1 le "!" est reporté mais si colonne B on met "R" pour signaler que l'impayé est régularisé, le "!" de la colonne A1 s'efface. S'il n'y a pas paiement, le "!" reste, et est reporté feuil 3, le tout à partir de la formule :

=SI(ET(Feuil1!A1="!";Feuil2!B1="R");"";Feuil1!A1)

Dans la feuille 3 (semaine 3) cellule A1 formule ci-dessus, mais qui renvoie non plus à la feuil 1, mais à la feuille 2. Il faudrait donc que je ré-écrive la formule 52 fois, pour toutes les semaines de l'année, en changeant à chaque fois la référence à la page. Au lieu de mettre dans la formule feuil1, ou feuil2... comment introduire la notion de "feuille précédente" pour pouvoir copier automatiquement la formule d'une feuille à l'autre ?

Merci de votre aide.

A voir également:

3 réponses

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour tout le monde,

Et une 3ème proposition en fonction personnalisée à mettre dans un module :
Function FeuilleRelative(Référence As Range, offsetFeuille As Long) 
    Dim shIndex As Long 
    Application.Volatile 
    shIndex = Application.Caller.Worksheet.Index 
    FeuilleRelative = Worksheets(shIndex + offsetFeuille).Range(Référence.Address) 
End Function


Formule à saisir dans les feuilles :
=FeuilleRelative(A1;-1)

-1 : feuille précédente
-2 : 2 feuilles avant
1 : feuille suivante
etc
Accepte les références absolues pour la cellule : $A$1 ou $A1 ou A$1

eric
1
Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   954
 
Salut le forum

Pour remplacer Feuil1!A1 si tu es sur la Feuil2
=INDIRECT(GAUCHE(NomFeuille;5) & DROITE(NomFeuille;NBCAR(NomFeuille)-5)-1&"!A1")

Tu crées pas Insertion > Nom définir
NomFeuille fait référence à
=STXT(CELLULE("nomfichier");TROUVE("]";CELLULE("nomfichier"))+1;20)

Ta formule =SI(ET(Feuil1!A1="!";Feuil2!B1="R");"";Feuil1!A1) devient
=SI(ET(INDIRECT(GAUCHE(NomFeuille;5) & DROITE(NomFeuille;NBCAR(NomFeuille)-5)-1&"!A1")="!";INDIRECT(NomFeuille&"!B1")="R");"";INDIRECT(GAUCHE(NomFeuille;5) & DROITE(NomFeuille;NBCAR(NomFeuille)-5)-1&"!A1"))

Mytå
0
JvDo Messages postés 2012 Statut Membre 859
 
Bonsoir
sur le même principe mais quel que soit le nommage des feuilles :
la formule :
=SI(ET(INDIRECT(ma_feuille_precedente&"!A1")="!",INDIRECT(ma_feuille&"!B1")="R"),"",INDIRECT(ma_feuille_precedente&"!A1"))

les 3 noms à définir :
ma_feuille =STXT(CELLULE("nomfichier",!$A$1),TROUVE("]",CELLULE("nomfichier",!$A$1))+1,255)   
ma_feuille_precedente =INDEX(mes_feuilles,EQUIV(ma_feuille,mes_feuilles,0)-1)   
mes_feuilles =STXT(TRANSPOSE(LIRE.CLASSEUR(1)),TROUVE("]",TRANSPOSE(LIRE.CLASSEUR(1)))+1,255)   

Cordialement
0