Tri sur cellules Excel avec VBA

thierrypp Messages postés 31 Date d'inscription vendredi 7 juin 2002 Statut Membre Dernière intervention 1 septembre 2002 - 12 août 2002 à 11:46
thierrypp Messages postés 31 Date d'inscription vendredi 7 juin 2002 Statut Membre Dernière intervention 1 septembre 2002 - 18 sept. 2002 à 20:02
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?

Merci,

Bonne journée!

2 réponses

cs_BelleRose Messages postés 2 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 18 septembre 2002
18 sept. 2002 à 17:18
Voici le code correspondant à ta demande (si j'ai bien compris !)

Sub Ménage()
Dim Ligne As Integer 'parcours les cellules
Dim Colonne As Integer 'colonne où on veut faire le ménage
' initialisation
Colonne = 3 ' si c'est la colonne B qui nous intéresse
Ligne = 2   ' si pas d'en-tête
' boucle
Do While Cells(Ligne, Colonne) <> "" 'jusqu'à la première cellule vide
    If Cells(Ligne, Colonne) > Cells(Ligne - 1, Colonne) * 1.01 Then 'condition à vérifier
        ' on remplace la valeur de la cellule
        Cells(Ligne, Colonne) = (Cells(Ligne - 1, Colonne) + Cells(Ligne, Colonne)) / 2
    End If
    Ligne = Ligne + 1
Loop
End Sub


Jolie fleur
0
thierrypp Messages postés 31 Date d'inscription vendredi 7 juin 2002 Statut Membre Dernière intervention 1 septembre 2002
18 sept. 2002 à 20:02
Merci, je vais le tester!

Je suis en milieu hospitalier et en fait à partir de données à tranferer (péniblement à la main de fichiers .dat ou .txt) je voulais un smoothing, c'est à dire un lissage de façon à diminuer les pics ou chutes dues au bruit de l'électronique d'acquisition.

Je fais tout manuellement, arrivé au solveur, c'est bon, mais auparavant, l'horreur! -sourire-

Question : on peut rétirer ce procéder ou y a-t-il une boucle qui remonte au début jusqu'à ce que tout soit lisser?

Merci!

Thierrypp

THIERRYPP
0
Rejoignez-nous