Microsoft 365 Calcul d'appareils de soufflage suivant critéres

Hervé

XLDnaute Barbatruc
Bonjour les copains :)

Je vous soumets un petit problème, trouver le nombre d'appareils necessaire pour valoriser le soufflage d'air neuf dans des salles suivant un référentiel.

cela suivant plusieurs contraintes (surface, nb de personnes max)

J'ai crée un fichier exemple ou je pense avoir recensé les problèmatiques de mon projet, mais on n'est jamais à l'abri d'une erreur.

je souhaiterai une formule mais je ne suis pas contre du vba non plus

je vous remercie par avance pour votre aide

a plus les copains
 

Pièces jointes

  • diagnostique soufflage.xlsx
    11.1 KB · Affichages: 15

Dranreb

XLDnaute Barbatruc
Bonjour.
VB:
Option Explicit
Function OptiSouf(ByVal Surf As Double, ByVal Effect As Double, AirNeuf As Double, ByVal RngTb As Range) As Variant()
   Dim TRef(), MeilVol As Double, L As Integer, LMeil As Integer, Nb As Integer, Vol As Double, MeilNb As Integer, MeilL As Integer
   If Effect = 0 Then OptiSouf = Array(0, ""): Exit Function
   TRef = RngTb.Value
   MeilVol = (2 ^ 53 - 1) * 2 ^ 971
   For L = 1 To UBound(TRef, 1)
      Nb = Int(AirNeuf / TRef(L, 2) + 0.9999999)
      Vol = Nb * TRef(L, 2)
      If (Surf < 50 Imp Nb = 1) And MeilVol > Vol Then MeilVol = Vol: MeilNb = Nb: MeilL = L
      Next L
   If MeilL > 0 Then
      OptiSouf = Array(MeilNb, TRef(MeilL, 1))
   Else: OptiSouf = Array("Impossible", ""): End If
   End Function
Remarque: pour Air neuf 875, 5 modèle 1 respectent mieux l'avant dernière contrainte que 3 modèle 3, et la minimisation du nombre de modèle ne vient qu'en dernière contrainte.
 
Dernière édition:

Hervé

XLDnaute Barbatruc
bonjour jha et danreb et le forum

merci pour votre aide

jha, superbe, je ne suis pas un specialiste de power query, et je me demande quel est l'apport dans ce fichier, en somme nous aurions pu nous en passer ?

dranreb, merci, pourrais tu m'expliquer la "philosophie" de MeilVol = (2 ^ 53 - 1) * 2 ^ 971 ?

je pense retravaillé ta function en macro afin de pouvoir récupérer le nom du modele.

je vous renouvelle mes remerciements

a plus
 

Dranreb

XLDnaute Barbatruc
Si l'on sait que c'est le plus grand nombre possible on peut éventuellement comprendre plus vite que c'est en vue d'une quête d'autres forcément plus petits …
Mais pour qu'on le comprenne encore plus vite je mettrai dorénavant Const LimiteMax = (2 ^ 53 - 1) * 2 ^ 971
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 246
Messages
2 117 750
Membres
113 300
dernier inscrit
faby79