thierrypp
Messages postés31Date d'inscriptionvendredi 7 juin 2002StatutMembreDernière intervention 1 septembre 2002
-
12 août 2002 à 11:47
cs_seblomb
Messages postés36Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention 4 avril 2003
-
14 août 2002 à 08:54
THIERRYPP
Bonjour,
Comment procéder automatiquent à une élimination de cellule dans une colonne lorsque celle-ci à une valeur supérieure à 10% de la précédente et la remplacer par la moyenne de l'actuelle et la précédente?
cs_seblomb
Messages postés36Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention 4 avril 2003 12 août 2002 à 12:55
Salut,
en VB ça devrait donner quelque chose comme:
Sub Bouton_QuandClic()
Range("A1").Select
ActiveCell.End(xlDown).Select
'nb_lignes est le nombre de lignes de la colonne
nb_lignes = ActiveCell.Row
For i = 2 To nb_lignes
Range("A" & i).Select
'si la cellule de la ligne i est supérieur de 10% à la cellule de la ligne (i-1)
If Range("A" & i).Value > (Range("A" & i - 1).Value + 0.1 * Range("A" & i - 1).Value) Then
'la cellule prend la valeur de la moyenne de l'actuelle et la précédente
Range("A" & i).Value = (Range("A" & i).Value + Range("A" & i - 1)) / 2
End If
Next i
thierrypp
Messages postés31Date d'inscriptionvendredi 7 juin 2002StatutMembreDernière intervention 1 septembre 2002 13 août 2002 à 17:08
Bonjour,
Merci, cela marche parfaitement!
avec une modification : commencer à une ligne plus bas ( testé)
et nb=ActiveCell.Row bloque????
Merci, il s'agit donc du lissage d'une courbe.
Je travaille en milieu médical, donc très lent à me former mais il y a beaucoup de choses pour améliorer les diagnostiques.
Pour la suite, j'ai réussi à utiliser le solveur d'excel pour paramétrer la courbe de température de recouvrement d'un organe après anesthésie. Manuellement je précise car de la à faire une macro pour traiter des fichiers en format *.dat vers excel et activer une macro par un simple click......
En tous cas, savchez qu'en m'aidant vous participez activement à un plus médical, que notre budget ne nous permet pas d'effectuer par sous-traitance externe.
Merci beaucoup et surtout pour les blésés en soins intensifs.
cs_seblomb
Messages postés36Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention 4 avril 2003 14 août 2002 à 08:54
Salut,
Dans la boucle For, l'indice i représente le numéro de ligne,
dans le code, il commence à la ligne n°2 (For i=2 to ...), donc pour faire commencer une ligne plus bas, il suffit de mettre For i=3 To nb_lignes.
ActiveCell.End(xldown).Select sélectionne la dernière cellule active,
ActiveCell.Row donne le numéro de ligne de la cellule active, de quelle façon ça bloque? (quel est le message qui apparaît??)