VBA supprimer des lignes si la valeur issue de formule est 0

Bonjour à tous,

Comme mentionné dans le titre, je cherche la formule VBA afin que je puisse effacer automatiquement toutes les lignes situé après la ligne 51, lorsque le chiffre 0 qui est issu d’une formule est inscrit dans la colonne A. Petite précision, je souhaite garder l’espace vide qui séparent les différents tableaux.

Je vous joins mon document allégé.

5devis-test.xlsm (25.83 Ko)

En fouillant dans le forum, j’ai trouvé une formule qui fonctionne mais uniquement avec un chiffre rentrer manuellement.

Dim n As Integer

Application.ScreenUpdating = False

For n = Range("B65536").End(xlUp).Row To 51 Step -1

If (Range("A" & n) = "0") Then

Rows(n).Delete

End If

Next n

J’espère que l’un d’entre vous pourra m’aider, vous remerciant par avance.

Bonjour TheBlackCoyotte,

à tester,

If Left(Range("A" & n).Formula, 1) = "=" And Range("A" & n).Value = 0 Then

Bonjour TheBlackCoyotte,

à tester,

If Left(Range("A" & n).Formula, 1) = "=" And Range("A" & n).Value = 0 Then

Bonjour i20100,

C’est parfait ! c’est exactement ce que je voulais , merci.

Cependant, un autre problème est intervenu en effectuant la macro. Lorsque j’effectue celle-ci, le cadre « Rayon peinture » (ligne 59) qui détenait uniquement des lignes (A60, A61, A62 et A63) avec des zéros ont bien été toutes effacés mais le cadre « Rayon de peinture » est resté.

J’aimerai que ce cadre « Rayon peinture » soit également supprimé, puisqu’il ne me sert a rien. Je me suis dis qu’en y ajoutant une formule dans la cellule A59 (=SOMME(A60:A63)), le résultat étant de zéro celui-ci devrait aussi être supprimé après l’utilisation de la macro mais il m’affiche une erreur (#REF !) dans la cellule A59, j’ai également une erreur dans la macro « erreur d’exécution 13 » malgré que mes lignes (A60:A63) contenant un zéro est bien été supprimé. Par contre les lignes (A56 et A57) contenant un zéro dans le cadre « rayon visserie » n’ont pas été supprimés.

Pourrais-tu me venir en aide ?

Ci-joint mon fichier mis a jour avec la macro.

6devis-test.xlsm (25.84 Ko)

Quelqu'un pour m'aider ??

re,

à tester,

Sub Effacer_fourniture()
Dim n As Integer
Application.ScreenUpdating = False
For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Left(Range("A" & n).Formula, 1) = "=" And Range("A" & n).Value = 0 Then
Range("L" & n) = 1
End If
Next n

For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Range("L" & n) = 1 Then Rows(n).Delete
Next n
End Sub

re,

à tester,

Sub Effacer_fourniture()
Dim n As Integer
Application.ScreenUpdating = False
For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Left(Range("A" & n).Formula, 1) = "=" And Range("A" & n).Value = 0 Then
Range("L" & n) = 1
End If
Next n

For n = Range("B65536").End(xlUp).Row To 51 Step -1
If Range("L" & n) = 1 Then Rows(n).Delete
Next n
End Sub

Parfait! Au top. Mille merci i20100...

Rechercher des sujets similaires à "vba supprimer lignes valeur issue formule"