buteorufinus
Messages postés3Date d'inscriptiondimanche 1 novembre 2009StatutMembreDernière intervention 5 avril 2010
-
3 avril 2010 à 15:20
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
5 avril 2010 à 22:23
Bonjour ,
je ne suis pas certain que le choix du thème soit pertinent, mais je n'ai rien trouvé d'autre.
Je souhaite dans excel écrire une formule pour le résultat suivant:
si A1 est compris entre 500 et 1400 on affiche b1=1(1palette)
si A1 inférieur à 500 on affiche b1=0.5 ( 0.5 palette)
si A1 est supérieur à 1400 on applique les règles si dessus
EXEMPLE
A1= 1200 B1= 1
A1= 450 B1= 0.5
A1= 1500 B1= 1.5
A1= 2100 B1= 2
ETC ....
APLLICATION: LOGISTIQUE >>> DETERMINER LE CHARGEMENT D'UN CAMION
Raisonnement par tranche: 1 commande de 500 à 1400kg sera préparée sur une palette. si la commande fait moins de 500kg , nous aurons une demie palette, qui pourra ce gerber sur une autre demie palette.
pour une commande de 1800 kg , nous aurons 1 palette de 1400kg et une demie palette de 400kg ; pour une commande de 3200 kg nous aurons 2 palettes comprises dans notre intervalle 500-1400 et 0.5 palette pour le reliquat de 400 kg ( donc intervalle - de 500kg)
j'espère que l'explication est claire?
Cordialement.
buteorufinus
Messages postés3Date d'inscriptiondimanche 1 novembre 2009StatutMembreDernière intervention 5 avril 2010 5 avril 2010 à 21:52
bonsoir PCPT
Merci pour le code BVA
il répond parfaitement au résultat attendu
j'ai à partir de ce code décliné 12 autres modules avec des intervalles differents pour couvrir le panel des différents produits.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 avril 2010 à 16:21
salut,
en effet c'est du VBA (catégorie modifiée)
à supposer l'appel depuis une cellule :
dans un module
Public Function GetPalletsCount(ByVal oCell As Range) As Double
GetPalletsCount = GetPallets(oCell.Value)
End Function
Private Function GetPallets(ByVal lValue As Long) As Double
Select Case lValue
Case Is < 500: GetPallets = 0.5
Case Is < 1401: GetPallets = 1
Case Else: GetPallets = 1 + GetPallets(lValue - 1400)
End Select
End Function
buteorufinus
Messages postés3Date d'inscriptiondimanche 1 novembre 2009StatutMembreDernière intervention 5 avril 2010 4 avril 2010 à 10:58
bonjour à tous ,
je vous remercie de votre réponse; je vais essayer d'appliquer le code que vous m'avez transmis. je vous redonne des nouvelles rapidement .
Pour aujourd'hui , on va se consacrer un peu de temps pour la famille
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?