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

rhyss -  
eriiic Messages postés 24581 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.

3 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    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
  3. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   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