J'ai atteint le maximum de formule imbriqué

26test.xlsx (216.20 Ko)

Bonjour,

J'ai un petit problème. J'essaie de créer un fichier de calcul presque automatisé.

Je veux entrer quelques informations de base et je voudrais que tout se calcul en fonction de mes nombreux tableaux remplis

de taux répartis sur plusieurs feuille de calcul dans le même fichier servant à calculer la valeur de la maison selon les quelques critères de base.

Les critères de base sont (5) :

La superficie habitable

La classe de bâtiment

Le type

Le revêtement extérieur

L'ossature

En résumé , selon les critères mentionné ci-haut, j'aimerais aller chercher un taux dans mes tableaux.

Présentement tout allait bien dans mon procédé, mes formules marche. Cependant, j'en suis probablement seulement à la moitié de la création de ma formule et Excel me mentionne que j'ai atteint la maximum de niveau imbriqué, soit de 64.

J'ai utilisé une formule SI avec RechercheV imbriqué mais je crois que je me complique la vie mais je ne sais pas trop comment réaliser la chose d'une autre manière.

Je vous joint un fichier test. Le fichier vous aidera peut-être à comprendre mon dilemme.

Merci beaucoup à l'avance !

Salut Alex,

perso, si je peux t'aider, ce sera par VBA.

Question formule, je crois effectivement que cela pourrait être plus simple mais je n'y connais pas gran'chose.

Peux-tu décrire précisément , dans 'Coûts' (j'imagine que c'est là le souci), de quelles données on dispose.

  • J3, J4, J5, pour déterminer la feuille et la catégorie ?
  • B5, B7 pour les m² et le type précis ?

Ces données sont-elles les seules nécessaires? Avec ce raisonnement, je tombe effectivement sur ta valeur-exemple!

A+

Effectivement dans le dossier TEST, ce sont les cases en jaune que je considère pour trouver ma valeur.

Ma formule est effectivement bonne, cependant, elle fonctionne seulement pour du One Story,

Je veux reproduire ma séquence que j'ai fait et l'appliquer pour quand je choisi TWO STORY dans ma liste déroulante ...

Sauf que , de cette manière, je dois imbriquer ma formule SI et RECHERCHEV dans la formule initial en valeur si faux et EXCEL me mentionne qu'il est impossible de le faire étant donné que je dépasse la limite d'imbrication qui est de 64.

Je ne connais aucunement les VBA ... tu crois que ca règlerait mon problème ?

Merci encore pour la réponse, si tu as besoin de plus d'éclaircissement, n'hésite pas à me le dire !

Salut Alex,

voici une version à tester... après ta part de travail!

Il m'a fallu un bout de temps avant de m'apercevoir que tes ONE STORY et compagnie étaient... des formules!

Si tu veux que ça fonctionne, il conviendrait de transformer tout ça en TEXTE, sans formule.

Si ça te convient ainsi, on verra pour la suite...

A+

7houseprice.xlsm (239.86 Ko)

C'est exactement ce que je voulais !

Je me demande juste quel tour de magie tu as fait parce que dans ma cellule G13 (la cellule ou le taux change en fonction des variables dans les cases en jaunes) il n'apparait aucune formule, mais le bon taux apparaît !

VBA ?

Merci beaucoup !!!!

Salut Alex,

VBA, en effet!

Mais, pas si vite, ce n'est pas fini!!!

En effet, tu as plusieurs fois le même type général de maison (1/2 STORY entre autres...).

Là, il y aura problème car VBA s'arrêtera toujours sur le premier tableau rencontré.

Il faudrait ajouter au titre une lettre ou un chiffre pour les différencier!

Par exemple : 1/2 STORYf -> Finished 2nd floor / 1/2 STORYu -> Unfinished 2nd floor

A+

Merci bcp !!

Je vais approfondire sur le sujet des VBA !

Salut Alex,

La boucle de recherche, légèrement optimisée...

If [J3] <> "" And [J4] <> "" And [J5] <> "" And [B5] <> "" And [B7] <> "" Then
    With Worksheets(CStr([J3]))
        For iRow = 1 To .Range("A" & Rows.Count).End(xlUp).Row             'recherche le type général (ONE STORY...)
            If CStr(.Cells(iRow, 1)) = CStr([J4]) Then
                For iCol = 1 To 13                                         'recherche le type de revêtement extérieur
                    If CStr(.Cells(iRow + 6, iCol)) = CStr([B7]) Then
                        For iLig = iRow + 8 To iRow + 26                   'recherche la superficie
                            If CInt(.Cells(iLig, 1)) = CInt([B5]) Then [G13] = .Cells(iLig, iCol)
                        Next
                    End If
                Next
            End If
        Next
    End With
End If

Tu rappelles quand tu veux!

A+

Rechercher des sujets similaires à "atteint maximum formule imbrique"