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

Messages postés
3
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
5 avril 2010
- - Dernière réponse : PCPT
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
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.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
3
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
5 avril 2010
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de buteorufinus
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
82
0
Merci
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
Commenter la réponse de cs_DARKSIDIOUS
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26
0
Merci
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]
Commenter la réponse de PCPT
Messages postés
3
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
5 avril 2010
0
Merci
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
Commenter la réponse de buteorufinus
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
26
0
Merci
bien

n'oublie pas de valider dans ce cas

bonne soirée
Commenter la réponse de PCPT