Programmation d'un macro sous excel

JP -  
loubana22 Messages postés 1 Statut Membre -
Bonjour, j'ai un problème avec la programmation d'un macro, le voici :

Sub Macro2()

End Sub
Dim I As Long
Dim Plage As Range
Set Plage = Range("M5:M" & Range("M5").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 0 Then
Plage.Cells(I).EntireRow.Delete
End If
Next

End Sub

L'objectif est d'effacer toutes les lignes dans lesquelles la rangée "M" affiche une valeur de 0, pour l'instant cela fonctionne jusqu'à ce qu'une ligne affiche une valeur différente de 0, alors le macro s'arrête.

Merci
A voir également:

5 réponses

Utilisateur anonyme
 
Bonjour,

suggestion :

Sub Nettoyage()

    Dim I As Long, Limite As Long
    
    Range("M5").Select
    Limite = Range("M5:M65535").End(xlDown).Row

    For I = 0 To Limite
        If (ActiveCell.Offset(I, 0).Value = 0) Then
            ActiveCell.Offset(I, 0).EntireRow.Delete
        End If
    Next

End Sub
'

Lupin
0
Utilisateur anonyme
 
oups :

Sub Nettoyage()

    Dim I As Long, Limite As Long
    
    Range("M5").Select
    Limite = Range("M5:M65535").End(xlDown).Row

    For I = 0 To Limite
        If (ActiveCell.Offset(I, 0).Value = 0) Then
            ActiveCell.Offset(I, 0).EntireRow.Delete
            Limite = (Limite - 1)
        End If
    Next

End Sub
'
0
Papou
 
Bonsoir JP,

J'ai testé ton code, il marche parfaitement.
Toutefois, essaies le code modifié ci-dessous :

Sub Macro2()
Dim I As Long
Dim Plage As Range
Set Plage = Range(Cells(5, 13), Cells(ActiveSheet.UsedRange.Rows.Count, 13))
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 0 Then
Plage.Cells(I).EntireRow.Delete
End If
Next
End sub


Cordialement.

Papou
0
JP
 
Ca marche parfaitement, merci beaucoup !! =)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loubana22 Messages postés 1 Statut Membre
 
svp je vous realiser un programme pour tracer un histogramme et pour le test de henrysous excel
0