Vba conditions

sterlook Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
slt patrice

si t'as des solutions sans passer par vba , je suis preneurrrrrrrrrrrr
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
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   Statut Membre Dernière intervention  
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
merci patrice, mais ça concerne quelle condition ??
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
ça répond à ton exemple ci-dessus
0
sterlook > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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
sterlook
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Re,

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