Supprimer ligne

Résolu/Fermé
pascal3110 Messages postés 136 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 14 mars 2016 - 26 oct. 2015 à 16:33
pascal3110 Messages postés 136 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 14 mars 2016 - 26 oct. 2015 à 18:17
Bonjour,
j'ai un tableau avec une colonne total
je souhaiterai avec du vba et un bouton supprimer les lignes ou cette colonne est a zéro
quel est le bon code pour ça en sachant que la colonne est la "B"
et que les lignes vont de "8" à "43"
merci d'avance pour l'aide


3 réponses

diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 857
Modifié par diablo13800 le 26/10/2015 à 16:50
Bonjour

Peut-tu essayer avec cette Macro?
Sub Macro1()
For i = 43 To 8 Step -1
If ((ThisWorkbook.ActiveSheet.Range("B" & i).Value) = 0) Then
ThisWorkbook.ActiveSheet.Range("B" & i).EntireRow.Delete
End If
Next
End Sub


Bien sur a adapter suivant ton tableau :)
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
26 oct. 2015 à 16:56
Bonjour,

Tu peux utiliser une simple boucle
Sub SupprimerLignes()
Dim Ligne As Integer
For Ligne = 43 To 8 Step -1
If Range("B" & Ligne).Value = 0 Then Rows(Ligne).Delete
Next Ligne
End Sub

A+
0
diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 857
26 oct. 2015 à 16:59
Hmmm J'ai pas encore l'habitude d'optimiser le code a ce point grrrr :)
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524 > diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024
26 oct. 2015 à 17:35
Pourtant, sur le fond ton code est préférable au mien car il désigne explicitement les objets classeur et feuille.
Mon code adapté
Sub SupprimerLignes()
Dim Ligne As Integer
With ThisWorkbook.Worksheets("Feuil1")
For Ligne = 43 To 8 Step -1
If .Range("B" & Ligne).Value = 0 Then .Rows(Ligne).Delete
Next Ligne
End With
End Sub

A+
0
diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 857 > Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016
26 oct. 2015 à 17:37
Ce qui est bien c'est qu'on ne sait toujours pas si la personne qu'on essai d'aider est satisfaite:)
0
pascal3110 Messages postés 136 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 14 mars 2016
26 oct. 2015 à 18:17
Bonjour
la personne est surprise de la rapidité de réponse....
c'est impressionnant
je n'ai qu'à dire un grand bravo et un encore plus grand merci cela fonctionne du feu de dieu

merci merci merci
0