Vba conditions

Fermé
sterlook Messages postés 14 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 juillet 2013 - Modifié par sterlook le 15/07/2013 à 12:02
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 15 juil. 2013 à 17:25
Bonjour,

Ayant jamais programmé en vba, et étant obligé de m'en servir pour mon travail, je viens

poster mon problème ici en ésperant trouver quelques choses.

Ce qui me manque c'est ce traitement là:

J'ai 2 colonnes (valeurs) : C et V sous excel

J'ai 3 conditions à faire pour le nettoyage de ces données pour qu'ensuite je pourrai avoir

ma courbe qui va faire l'objet de l'étude globale qu'il faut que je fasses.



1: if C >= 1000 (Réaffectation de la valeur C sur toutes les lignes où C=0 && V#0)


2: if C>= (Remplacer C par la médiane)


3: if (C= 0 && delta(V) > 50) (remplacer C par la médiane)


Merci d'avance

5 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
15 juil. 2013 à 11:39
Bonjour,

« étant obligé de m'en servir » Pourquoi est-ce une obligation ???

Pas besoin du VBA, ce problème peux être résolu avec de simples formules dans des colonnes libres et un filtre !!!
0
sterlook Messages postés 14 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 juillet 2013
15 juil. 2013 à 11:43
slt patrice

si t'as des solutions sans passer par vba , je suis preneurrrrrrrrrrrr
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
15 juil. 2013 à 11:40
coucou,

J'ai rien compris à ta demande.

La première condition est contradictoire car tu parles C>= 1000 mais en même temps c=0 ???

ensuite, tu parles d'une médiane, elle est déjà calculé? C'est la médiane de la colonne C C'est la médiane de V???

Delta(V), je suis peut être une bille, mais c'est quoi?
et la médiance, elle est déjà calculée?? Faut la calculer?? Comment est ce qu'elle se calcule.

Il faut que tu précises tout ca avant d'avoir une aide.
0
sterlook Messages postés 14 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 juillet 2013
Modifié par sterlook le 15/07/2013 à 12:01
slt mélanie,

Alors pour être plus clair :

if C >= 1000 (Réaffectation de la valeur C sur toutes les lignes où C=0 && V#0)

admettant que j'ai une C = 1598 donc C > 1000 ----> réaffectation du C là où il y a la condition

C=0 && V#0 C'est à dire que C va prendre la valeur réaffectée

Exemple


C V
0 0
15 45
0 15
0 12
1598 45
489 89

on a la valeur 1598 ---> elle est >= 1000 ---> donc réaffectation sur là ou C=0 et V # 0

on a 2 fois C=0 et V #0 ----> 1598 / 3 =535.66 (J'ai pris 3 , ce qui correspond aux occurences C=0 V#0 + la valeur meme de 1598)

Le résultat donnera :


C V
0 0
15 45
535.66 15
535.66 12
535.66 45
489 89



Pour la médiane : elle est pas calculée justement. le calcul se fait au fur et a mesure

médiance=médiane faute de frappe

Delta(V) : V - (V-1)



J'espere etre clair
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
15 juil. 2013 à 14:15
Avec le valeurs de C en colonne A (A2 à A7) et celles de V en colonne B (B2 à B7)

Formule en C2 :
=SI(ET(MAX($A$2:$A$7)>1000;OU(ET(A2=0;B2<>0);A2=MAX(A$2:A$7)));MAX($A$2:$A$7)/(SOMMEPROD(($A$2:$A$7=0)*($B$2:$B$7<>0))+1);A2)
à tirer vers le bas jusqu'en C7
0
sterlook Messages postés 14 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 juillet 2013
15 juil. 2013 à 14:43
merci patrice, mais ça concerne quelle condition ??
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
15 juil. 2013 à 14:52
ça répond à ton exemple ci-dessus
0
sterlook > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
15 juil. 2013 à 15:47
merci . tas vraiment assuré . cest cette partie là qui me derangeait le plus.
maintenant je veux delimiter ce traitement
sur une étape caracterisé par une autre colonne DATE. en gros je veux que ce traitement se fasses jour par jour . merci bcp
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
Modifié par Patrice33740 le 15/07/2013 à 16:53
Re,

J'ai dédoublé ton tableau avec 2 dates en plus :

Avec les valeurs de C en colonne A (A2 à A13) et celles de V en colonne B (B2 à B13) et la date en colonne C :

Formule en D2 :
=SI(ET(MAX(($C$2:$C$13=C2)*$A$2:$A$13)>1000;OU(ET(A2=0;B2<>0);A2=MAX(($C$2:$C$13=C2)*$A$2:$A$13)));MAX(($C$2:$C$13=C2)*$A$2:$A$13)/(SOMMEPROD(($A$2:$A$13=0)*($B$2:$B$13<>0))+1);A2)
Attention : à valider par Maj+Ctrl+Entrée puis à tirer vers bas
Cordialement
Patrice
0
merci bcp, mais là ça marche pas , ça me fait faux :s:s
0

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

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
15 juil. 2013 à 17:25
Re,

Ce sera peut-être plus simple avec le fichier :
https://www.cjoint.com/13ju/CGprybiPFir_sterlock.xls
0