Rendre macro fonctionnelle si la condition est réunie

Bonjour tout le monde !

En colonne B de mon tableau, j'ai une variable qui est le chiffre ''0''(Zéro) j'ai trouvé sur le forum une macro que j'ai adaptée et ça semble marcher

Je cherche comment faire pour qu'elle n'agisse pas s'il n'y a aucun chiffre ''0''(Zéro) dans la colonne B

--> pour le moment, lorsque le chiffre ''0'' n'est pas dans une des cellules de la colonne B, elle (la macro) déplace ma colonne B vers la colonne C, et la remplace par une colonne contenant les autres données de la colonne B actuelle déjà présentes dans le tableau

Voici la macro :

Sub supp_ligne_zero_formule()
    ActiveSheet.Unprotect "motdepasse"
Application.ScreenUpdating = False
Columns("B:B").Insert Shift:=xlToRight
Range("B16:B" & [C65536].End(xlUp).Row).Value = Range("C16:C" & [C65536].End(xlUp).Row).Value
With Range("B16:B" & [B65536].End(xlUp).Row)
    .Replace What:="0", Replacement:="", LookAt:=xlWhole
    .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Columns("B:B").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
 ActiveSheet.Protect "motdepasse", True, True, True
End Sub

Autres précisions :

1- je place la macro dans la feuille elle-même
2- le code doit s'exécuter malgré la présence d'un mot de passe
3- je suis en Excel 2010
4- le ''0'' résulte de formules importée par un "=" (égal) issue d'une autre feuille du classeur

Merci beaucoup de votre aide !

Bonjour

Essayez comme ceci

Sub test()
Dim i As Integer
With ActiveSheet
    .Unprotect "motdepasse"
    For i = .Range("B" & Rows.Count).End(xlUp).Row To 16 Step -1
        If .Cells(i, "B") = 0 Then .Cells(i, "B").EntireRow.Delete
    Next i
    .Protect "motdepasse", True, True, True
End With
End Sub

Si ok,

Cordialement

Rechercher des sujets similaires à "rendre macro fonctionnelle condition reunie"