Suppression d'1 ligne lorsque =0

  • Initiateur de la discussion Ole
  • Date de début
O

Ole

Guest
Bonjour

Comment faire en sorte que lorsque qu'une cellule de ma ligne est égale à 0, cette ligne ce supprime via une macro SVP ???
 

porcinet82

XLDnaute Barbatruc
Salut Ole,

Si ta macro est affectée à un bouton tu peux utiliser un code de ce genre (meme si il y a surement plus court):
Code:
Sub test()
Dim j As Integer, i As Integer

For i = Range('A65536').End(xlUp).Row To 1 Step -1
    For j = 1 To Range('IV1').End(xlToLeft).Column
        If Cells(i, j).Value = '0' Then
            Rows(i).Delete
        End If
    Next j
Next i
End Sub

@+
 
Q

Qrieux

Guest
bonjour

sans macro

trier en odre décroissant sur cette colonne
la selectionner

puis Edition Rechercher
Rechercher : 0
cocher cellules entieres

cliquer sur la cellule atteinte
puis appuyer en même temps sur les touches
CTRL , MAJ et VersLeBas

puis Edition Supprimer 'ligne entiere'

cette methode ne fonctionne pas si la colonne en question contient à la fois des nombres positifs et negatifs

A+

Message édité par: Qrieux, à: 07/04/2006 14:25

Message édité par: Qrieux, à: 07/04/2006 15:12
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

dans ton code porcinet tu devrais mettre un exit for après ton rows(i).delete


Sub test()

Dim j As Integer, i As Integer

For i = Range('A65536').End(xlUp).Row To 1 Step -1
   
For j = 1 To Range('IV1').End(xlToLeft).Column
       
If Cells(i, j).Value = 0 Then
            Rows(i).Delete
           
Exit For
       
End If
   
Next j
Next i

End Sub
 
O

Ole

Guest
Merci mais ca ne fonctionne pas chez moi

JE c pas si il faut ajuster votre code ??
Mes zéros peuvent se trouver dans les lignes 1673 et 1674 et si c le cas, je veux les supprimer !!

Ca permet bien de faire ca vos codes ??
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

le même détaillé

Sub suprimer()

Dim c
Dim i As Integer 'numéro de ligne

'Je  pars de la cellule A1 je récupères la ligne de la dernière cellule utilisée
'Puis je boucle de cette dernière ligne jusqu'en 1 en remontant
For i = Range('A1').SpecialCells(xlCellTypeLastCell).Row To 1 Step -1

' je cherche un 0 sur la ligne qui s'appelle en variable i mais qui est un nombre
   
Set c = Rows(i).Find(0, lookat:=xlWhole)
   
' si il trouve un 0 il supprime la ligne
   
If Not c Is Nothing Then Rows(i).Delete
   
' ligne précédente
Next i

End Sub
 
O

ole

Guest
en fait, faudrait que si y'ait un zéro dans les cellules G 1673 et G 1674 ca me supprime ces lignes

Par contre si 0 uniquement dans g 1673, la ligne 1674 doit resté
Et si 0 uniquement dans g 1674, la ligne 1673 doit resté
 

PascalXLD

XLDnaute Barbatruc
Modérateur
RE

Tu aurais pu préciser depuis le début on était parti sur toutes les lignes et sur n'importe quel emplacement de 0 sur la ligne

cela devrait suffire

Sub suprimer()

If Range('G1674') = 0 Then Rows(1674).Delete
If Range('G1673') = 0 Then Rows(1673).Delete

End Sub

Message édité par: Pascal76, à: 07/04/2006 15:14
 
O

Ole

Guest
Ca marche mais ca me fou en l'air mes calculs

En fait G 1675 est la cellule du total d'un devis qui prend en compte les frais de deplacement (G1674) et les remises (G1673)

Donc si on supprime une de ces lignes, on décale, et la formule ,en G1675 est faussé, vous avez pas une solution ??
 

Discussions similaires

Réponses
21
Affichages
446

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12