Programmation d'un macro sous excel
JP
-
loubana22 Messages postés 1 Statut Membre -
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
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:
- Programmation d'un macro sous excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Si ou excel - Guide
5 réponses
Bonjour,
suggestion :
Lupin
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
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
'
Bonsoir JP,
J'ai testé ton code, il marche parfaitement.
Toutefois, essaies le code modifié ci-dessous :
Cordialement.
Papou
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question