[déplacé VB6 -> VBA] definir une valeur sous condition d'intervalle

Résolu
buteorufinus Messages postés 3 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 5 avril 2010 - 3 avril 2010 à 15:20
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Derniè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.

5 réponses

buteorufinus Messages postés 3 Date d'inscription dimanche 1 novembre 2009 Statut Membre Derniè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.

cordialement
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
3 avril 2010 à 15:51
Salut,

Tu veux le faire par code VBA ou par macro excel ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
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


à appeler dans la cellule :
=GetPalletsCount(A1)


capture (dispo 30 jours) :



++
[hr]
0
buteorufinus Messages postés 3 Date d'inscription dimanche 1 novembre 2009 Statut Membre Derniè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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
5 avril 2010 à 22:23
bien

n'oublie pas de valider dans ce cas

bonne soirée
0