XL 2016 Supprimer des valeurs comprises entre deux valeurs sur Excel

Nicolasz

XLDnaute Nouveau
Bonjour à toutes et tous,

Je travaille sur Excel. Mon problème est que dans une même colonne j'ai la température comprise entre 40.1 °C et 54,7 °C et un courant qui varie de 140 A à 150 A.
J'aimerai simplement supprimer dans cette colonne les valeurs comprises entre 40.1 °C et 54.7 °C afin de n'avoir dans cette colonne plus que mon courant.

Je vous remercie par avance pour vos réponses.
 

Nicolasz

XLDnaute Nouveau
Screen excel.PNG

Donc le 40.5 colonne D vient se glisser une ligne sur deux avec le 170 et je souhaiterais enlever ces valeurs pour pouvoir ensuite faire une moyenne de mon courant ...
 

Nicolasz

XLDnaute Nouveau
J'ai plus de 1561 valeurs donc manuellement ça prendrait bcp de temps et par ailleurs j'ai 65 fichiers à analyser comme ça donc je préférerais faire une macro que je peux recopier dans tous ces fichiers
Sinon réorganiser toutes les valeurs pour avoir chaque valeur dans une colonne différente mais trop long une fois encore
 

mapomme

XLDnaute Barbatruc
Supporter XLD
il manque le fichier en effet c'est confidentiel :/
Non pas de capture d'écran (c'est ce que signifie "screen", je suppose).
Les répondeurs du forum n'ont que faire d'une image.

En tant que demandeur, vous nous faites un petit fichier anonymisé qui présente d'où on part et d'autre part où on veut arriver et dont la structure est semblable à celle du fichier d'origine.
Tant qu'on y est, dites nous si vous le voulez par formule, VBA ou Power Query.

Sinon, une piste à la vue de votre capture d'écran:
Les lignes avec le courant contiennent le mot IonGun:. et il y a des fonctions Excel du type xxx.SI dont MOYENNE.SI(...)
 

Nicolasz

XLDnaute Nouveau
@mapomme je vais voir ce que je peux faire

j'ai commencé à faire une macro telle que :

Sub supprimer ()

Dim ws_data As Worksheet

Dim lstrw As Long, rwnum As Long

Dim valeur As Variant



Set ws_data = Worsheets(1)

Lstrw = ws_data.cells(Rows.Count, 1).End(xlUp).Row

For rwnum = lstrw To 2 Step -1

valeur = ws_data.Cells(rwnum, 2).Value

If valeur = 40 Or valeur = “” Then

ws_data.Cells(rwnum, 1).EntireRow.Delete

End If

Next

MsgBox (“La suppression est faite”)

End Sub

Mais ça me supprimer qu'une seule valeur alors que j'ai de 40.1 à 54.7 à enlever
 

Nicolasz

XLDnaute Nouveau
J'ai donc essayé de faire des bornes et supprimer les valeurs qui sont dans ces bornes telle que :
Sub Suppensemble()

Sub EntireRow()

For i = Range("D" & Rows.Count).End(xlUp).Row To 1 Step -1

If Cells(i, 2) <= 40.1 And Cells(i, 2) >= 54.7 Then

Cells(i, 1).EntireRow.Delete

End If

Next i

End Sub
@mapomme
 

Nicolasz

XLDnaute Nouveau
La première macro est correcte cependant elle n'enlève qu'une seule valeur par une valeur donc trop long car il faut la modifier à plusieurs reprises.
La seconde macro ne marche pas car lorsque je la lance les valeurs comprises entre 40.1 et 54.7 comprises dans la colonne D ne s'effacent pas...
@mapomme
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Concernant Ion Gun: ça n'impacte pas mes calculs de moyennes car ce ne sont pas des valeurs. Donc je peux calculer aisément les valeurs qui sont entre les ion gun.
Je parlais de la fonction Moyenne.SI.

A l'aveugle :
Code:
=MOYENNE.SI(C:C;"*IonGun*";D:D)
devrait pour le calcul de la moyenne, ne retenir que les valeurs de D avec la valeur en C qui contient IonGun"
 

Discussions similaires

Réponses
9
Affichages
150

Statistiques des forums

Discussions
312 103
Messages
2 085 308
Membres
102 859
dernier inscrit
Diallokass