[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
13368
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 

Votre réponse

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 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de buteorufinus
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
112
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
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
32
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
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
32
0
Merci
bien

n'oublie pas de valider dans ce cas

bonne soirée
Commenter la réponse de PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.