suppression conditionnelle d'une ligne

S

sarah

Guest
Bonjour, je dois supprimer toutes les lignes d'un tableau pour lesquelles la colonne S contient une valeur < 0,1, mais pas nulle.
J'ai trouvé un code sur ce forum, mais les valeurs nulles sont aussi supprimées, ce qui est logique.

Code:
Sub Macro1()

Dim i As Integer
For i = Range('A65000').End(xlUp).Row To 2 Step -1
If Range('S' & i).Value < '0,1' Then
Range('S' & i).EntireRow.Delete
End If
Next i
End Sub

J'ai essayé de l'adapter, comme ceci:

Code:
Sub Macro2()


Dim i As Integer
For i = Range('A65000').End(xlUp).Row To 2 Step -1
If Range('S' & i).Value < '0,1' And Not 0 Then
Range('S' & i).EntireRow.Delete
End If
Next i
End Sub

mais ça n'a pas trop fonctionné....le programme se bloque au bout de 5 minutes, alors qu'il ne devrait pas supprimer tant de lignes que ça!

Pouvez vous me dire ce qui ne va pas?
Merci!
 

sarah

XLDnaute Nouveau
non, je ne pense pas, avec le premier code, les ' ' y étaient, et ça a marché..je vais quand même réessayer comme ça!
edit: quand j'enlève les '', la ligne devient rouge, c'est pas bon ça...Ça doit ête autre chose.

Message édité par: sarah, à: 14/02/2006 15:27
 

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour Sarah,

en fichier joint un essai il se base sur la colonne B mais si c'est bon change B par S dans le code.

Jocelyn [file name=sup.zip size=5789]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/sup.zip[/file]
 

Pièces jointes

  • sup.zip
    5.7 KB · Affichages: 39

sarah

XLDnaute Nouveau
Code:
If Range('S' & i).Value = 0 Then
ça ne supprime que les lignes ou s= 0, non?
ce n'est pas ça que je cherche, mais un code qui me permet d'éliminer les lignes ou 's' est non vide et < à 0.1. Je veux conserver les lignes où il n'y a pas de valeur pour 's'.
Je pense que je dois combiner deux conditions, mais je ne sais pas comment faire?!
 

mutzik

XLDnaute Barbatruc
Bonjour le fil

Sub Macro2()
Dim i As long, val as double
For i = Range('A65000').End(xlUp).Row To 2 Step -1
val = Range('S' & i).Value
If val < 0,1 And val DIFF 0 and val DIFF '' Then
Range('S' & i).EntireRow.Delete
End If
Next i
End Sub

!!!!!!!!! remplacer DIFF par les signes inférieur et supérieur, le forum n'accepte pas ces deux signes accolés !!!!!!!!!!!!

Message édité par: mutzik, à: 15/02/2006 08:44
 

sarah

XLDnaute Nouveau
sur la feuille test, la proposition de Jocelyne fonctionne quand s= 0, mais , moi, je voudrait que ça fonctionne pour S= ' ' .J'ai remplacé le '0' par ' ', mais ça ne fonctionne pas, toutes les lignes vides sont quand même supprimées.
Quelle valeur dois-je mettre à la place du '0'?
 

Jocelyn

XLDnaute Barbatruc
Re bonjour,
Bonjour Mutzik,

Alors sarah 2° essai cette fois les lignes ne sont pas supprimées si = 0 ou ='' enfin je crois

Jocelyn [file name=sup_20060215090407.zip size=6006]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/sup_20060215090407.zip[/file]
 

Pièces jointes

  • sup_20060215090407.zip
    5.9 KB · Affichages: 27

sarah

XLDnaute Nouveau
Merci Jocelyn, cette fois-ci, ça a marché!

En fait, une fois qu'on a compris, c'est tout bête, mais je ne parviens pas à trouver la bonne structure pour mes codes. N'y a-t'il pas un outil qui pourrait me faciliter la création de codes, comme sous Access pour les requêtes? Ou alors un auter moyen pour moi d'aprendre à créer des codes?
 

Jocelyn

XLDnaute Barbatruc
re,

Ce n'est pas moi qui peut répondre a ca je suis une bille en VBA.

Quand un code est créé j'arrive a peut prés a le comprendre donc a peut prés a changé une bricole et rien qu'une bricole (en plus je suis sur que la facon dont je l'ai fait n'est pas la meilleur et qu'elle doit faire rire le vrai VBAtiste)

Voila il faut etre réaliste :) :) je suis comme toi j'essai de me former

Jocelyn
 

mutzik

XLDnaute Barbatruc
Bonjour le fil, les filles

Allons, pas de défaitisme, si on arrive au résultat, c'est déja une victoire
Ensuite, l'art et la manière, on peut toujours épiloguer

Sarah, pour tes codes ..., si c'est du VBA, cela vient tout seul, mais c'est comme le piano, il faut en faire tout le temps
5 pistes
- le forum excel (à tout seigneur tout honneur)
- VBA pour les nuls (très bien fait)
- l'enregistreur de macros
- les pages wiki qui sont une véritable mine d'or
- les tutoriels de ce site
 

Discussions similaires

Statistiques des forums

Discussions
312 451
Messages
2 088 517
Membres
103 873
dernier inscrit
Sabin