Bonjour,
J'ai dans ma formule de calcule besoin de savoir si une feuille existe afin de faire un calcul A et si non un autre calcul B donc voici ce que j'ai mis comme fonction pour FeuilleExiste :
et dans ma cellule j'ai mis cette formule de calcul :
Mais j’obtiens comme résultat ceci #VALEUR
En clair je dois dans ma formule trouver si existe la feuille avant celle qui est active actuellement. Par exemple si je suis sur la feuille 2014 elle doit trouver si la feuille 2013 existe. Si je suis sur la feuille 1999 alors elle doit trouve si la feuille 1998 existe.
Puis je sais que la formule peut être réduire mais je ne sais pas comme avec la formule nb.si.ens ou autre function.
Je vais essaye de mettre un fichier d’exemple mais merci pour votre aide
PS : si je nomme la feuille où se trouve la formule 2012 alors pas d'erreur par contre si je la nomme Model alors oui.
Cette feuille Model sert pour créer de nouveaux onglet par la suite.
PS : J'ai tester la copie et sur la nouvelle feuille la fonction marche par contre comme je puisse dans ma formule mettre cette parte :
SI((SOMME('2013 (2)'!V533:V536;V7:V14) pour avoir toujours la la feuille avant et si pas de feuille alors ne pas affiche erreur si la feuille avant ce n'est pas numérique. En clair si je suis sur la feuille 2013 alors ce devrai être 2012. Si je suis sur la feuille 2014 elle doit trouver 2013 automatiquement. Actuellement je change manuellement ce nombre.
J'ai dans ma formule de calcule besoin de savoir si une feuille existe afin de faire un calcul A et si non un autre calcul B donc voici ce que j'ai mis comme fonction pour FeuilleExiste :
Code:
Function FeuilleExiste(Name) As Boolean
Dim sht As Worksheet
For Each sht In Worksheets
If UCase(sht.Name) = UCase(Name) Then FeuilleExiste = True: Exit Function
Next
End Function
et dans ma cellule j'ai mis cette formule de calcul :
Code:
=SI(FeuilleExiste(STXT(CELLULE("filename";B1);TROUVE("]";CELLULE("filename";B1))+1;32)-1);SI(JOURSEM(I14;2)=7;SI(MOD="oui";SI((SOMME('2013 (2)'!V533:V536;V7:V14))<LBM;SI(SOMME('2013 (2)'!V533:V536;V7:V14)>(SOMME(LBM;-(SOMME(NB.SI(A7:A14;"CP");NB.SI(A7:A14;"M");NB.SI(A7:A14;"CSS");NB.SI(A7:A14;"JF");NB.SI('2013 (2)'!A533:A536;"CP");NB.SI('2013 (2)'!A533:A536;"M");NB.SI('2013 (2)'!A533:A536;"CSS");NB.SI('2013 (2)'!A533:A536;"JF")))*(LBM/Jours_Ouvrables)));SOMME('2013 (2)'!V533:V536;V7:V14);SOMME(LBM;-(SOMME(NB.SI(A7:A14;"CP");NB.SI(A7:A14;"M");NB.SI(A7:A14;"CSS");NB.SI(A7:A14;"JF");NB.SI('2013 (2)'!A533:A536;"CP");NB.SI('2013 (2)'!A533:A536;"M");NB.SI('2013 (2)'!A533:A536;"CSS");NB.SI('2013 (2)'!A533:A536;"JF")))*(LBM/Jours_Ouvrables)));SOMME('2013 (2)'!V533:V536;V7:V14));SOMME(V7:V14));0);SI(JOURSEM(I14;2)=7;SI(MOD="oui";SI((SOMME(V7:V14))<LBM;SOMME(LBM;-(SOMME(NB.SI(A7:A14;"CP");NB.SI(A7:A14;"MP");NB.SI(A7:A14;"CSS");NB.SI(A7:A14;"JF")))*(LBM/Jours_Ouvrables));SOMME(V7:V14));SOMME(V7:V14))-4;0))
Mais j’obtiens comme résultat ceci #VALEUR
En clair je dois dans ma formule trouver si existe la feuille avant celle qui est active actuellement. Par exemple si je suis sur la feuille 2014 elle doit trouver si la feuille 2013 existe. Si je suis sur la feuille 1999 alors elle doit trouve si la feuille 1998 existe.
Puis je sais que la formule peut être réduire mais je ne sais pas comme avec la formule nb.si.ens ou autre function.
Je vais essaye de mettre un fichier d’exemple mais merci pour votre aide
PS : si je nomme la feuille où se trouve la formule 2012 alors pas d'erreur par contre si je la nomme Model alors oui.
Cette feuille Model sert pour créer de nouveaux onglet par la suite.
PS : J'ai tester la copie et sur la nouvelle feuille la fonction marche par contre comme je puisse dans ma formule mettre cette parte :
SI((SOMME('2013 (2)'!V533:V536;V7:V14) pour avoir toujours la la feuille avant et si pas de feuille alors ne pas affiche erreur si la feuille avant ce n'est pas numérique. En clair si je suis sur la feuille 2013 alors ce devrai être 2012. Si je suis sur la feuille 2014 elle doit trouver 2013 automatiquement. Actuellement je change manuellement ce nombre.
Dernière modification par un modérateur: