Menu

Copier la valeur d'une cellule sous condition [Résolu/Fermé]

- - Dernière réponse : Mike-31
Messages postés
16909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 juin 2019
- 11 janv. 2010 à 15:31
Bonjour,

Je viens vers vous car je suis bloqué sur la création d'une macro.

J'ai un tableau avec en colonnes :

-le nombre d'employés dans l'entreprise
-des classes d'effectifs
- des montants de contrats

je souhaite, pour chaque classe d'effectif, tester le montant de chaque cellule et, selon sa valeur, deux solutions:

- si sa valeur n'excède pas une valeur x, on copie cette dernière dans une quatrième colonne
- si sa valeur excède la valeur x, on écrit dans la quatrième colonne la valeur x

Malheureusement, je ne sais pas la réaliser. j'ai passé la matinée dessus et je suis perdu. mes macros ne font rien ou bug....je commence à être lassé, j'avoue.

sauriez vous m'aider ?

merci beaucoup,

McFly
Afficher la suite 

10 réponses

Messages postés
16909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 juin 2019
3495
0
Merci
Salut,

Pourquoi une macro pour ça, si tes données sont en colonne A, B et C par exemple les sommes en C et pour la ligne 2 en cellule D2 cette formule

=SI(C2<valeurX;C2;ValeurX)

Si la valeurX peut changer, il est possible de faire référence à une cellule contenant cette valeur, ce qui évitera de devoir changer la formule exemple ValeurX en F1
Adapter cette formule en D2 et incrémenter vers le bas

=SI(C2<$F$1;C2;$F$1)
0
Merci
et bien en fait, c'est plus compliqué.

on va dire que j'ai 6 classes d'effectifs: [0-9],[10-29],[30-49],[50-99],[100-199] et [200-250]
pour chaque classe d'effectif, j'ai un montant maximum à ne pas dépasser.

[0-9]==> 14840
[10-29] ==>29191
[30-49]==>40000
[50-99]==>47406
[100-199]==>50279
[200-250]==>76185

j'ai une base de 550 lignes à peu près. il faut que je teste la cellule dans laquelle j'ai mes classes d'effectifs, une fois cela fait, je teste le montant et, en fonction de la classe d'effectif, je regarde si ce montant est supérieur à mon plafond. Après, soit je prends le montant initial, soit je le remplace par mon plafond.

Avec une formule si, je vois pas comment le faire. Elle serait trop complexe non ?
C'est pour ça que je me suis dirigé vers vba en fait même si mon niveau me limite à cette heure-ci :D.
Messages postés
16909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 juin 2019
3495
0
Merci
Re,

Ces valeurs [0-9],[10-29],[30-49],[50-99],[100-199] et [200-250] sont dans quelle colonne

et peut il y avoir des valeurs inférieure à 0 et supérieure à 250 !

ensuite les valeurs 14840, 29191, 40000, 47406, 50279, 76185 sont elles des valeurs fixe ou enregistrées dans des cellules et lesquelles !

et pour terminer les valeurs à comprarer à ces dernières sont dans quelle colonne !


A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Merci
Salut mike .

Mes classes d'effectifs sont en colonne A et mes montants maximums (14480,29191,etc) sont saisis dans un petit tableau sur un autre onglet (mais rien ne m'empêche de le rapatrier sur cet onglet.).

Pour ce qui est de valeurs négatives ou supérieures à 250, aucun des deux cas n'est possible.

Les valeurs à comparer (soit les montants réels) aux montants maximums sont en colonne C

merci à toi de me consacrer du temps.

McFly
Messages postés
16909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 juin 2019
3495
0
Merci
Re,

Regardes le fichier joint avec le lien ci-dessous, en colonne A tu saisis la classe et en B le montant.
je te propose plusieurs formules que le montants de références soient sur la même feuille colonne K ou sur un autre feuille exemple feuille 2 colonne B

http://cjoint.com/?bksP0mtQka
0
Merci
HA oué!!! elles sont balaises les formules que tu as sorti :D

Ecoute, ça à l'air de correspondre à ce que je veux, merci beaucoup. Je pense utiliser la formule en colonne D du coup. par contre, j'ai une question, je peux tirer cette formule sans soucis ?
Autre question, je peux l'utiliser sur un excel 2002 ?


En tout cas, un grand merci pour ton aide. tu me retires une belle épine du pied :)
Messages postés
16909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 juin 2019
3495
0
Merci
Re,

Sur Excel 2002 il ne devrait pas y avoir de problème, si tu laisses les valeurs de référence sur une autre feuille, je te conseille de nommer chaque cellule (Insertion(Nom/Définir) pour la première dans mon exemple je l'ai nommée classe1 la deuxième classe2 etc ...

Explication de la formule, elle traite la valeur maximale pour terminer au contrôle de la valeur minimale.
pour chaque groupe la formule est =SI(ET(A2>=200;B2>classe6);classe6;

qui en clair pose une double condition, il faut que la valeur soit supérieure à la dernière classe SI >=200 mais également avec ET> à la valeur de référence alors afficher la valeur de référence sinon contrôler l'autre classe etc jusqu'à la dernière classe et sinon en fin de formule si dans aucun des cas la valeur n'est pas supérieure à la valeur référence en fonction de sa classe afficher la valeur en B

Lorsque tu parles de tirer la formule, je pense que tu veux parler d'incrémenter, alors oui bien sur grâce aux références absolue (lorsque tu veux faire référence à une cellule fixe on dit absolue on la place entre dollar $B$2 par exemple ou on nomme la cellule

Si tes attentes sont satisfaites, n'oublis pas de mettre ton statut en résolu

Merci
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Merci
Merci pour ces explications. Tu m'as en plus fait découvrir la fonction "ET" qui est TRES pratique apparemment :)

Je ne sais par contre pas comment mettre mon sujet en Résolu.... :/

Merci encore.

McFly
Messages postés
16909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 juin 2019
3495
0
Merci
Re,

Pour mettre le statut en résolu, il faut cliquer sur résolu en haut de la discussion et OK. Si tu n'y arrives pas, je le ferai pour toi ce soir
Messages postés
16909
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 juin 2019
3495
0
Merci
Erreur de ma part, tu ne peux pas le faire, il faut être membre, enregistres toi si tu dois intervenir d'autre fois.
Je mets ton statut en résolu