XL 2010 Correction macro supprimant les lignes avec '' 0 '' en début de tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Acritas

XLDnaute Nouveau
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 :

VB:
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 !
 
Dernière édition:
Bonjour,

Sans fichier, un code pourrait être lent en fonction du nombre de lignes à traiter.
La boucle commence par la dernière ligne.
VB:
Sub supp_ligne_zero_formule()
   Dim dl As Long, i As Long
   Me.Unprotect "motdepasse"

   Application.ScreenUpdating = False
   Application.Calculation = xlManual

   dl = Range("C" & Rows.Count).End(xlUp).Row
   For i = dl To 16 Step -1
      If Range("C" & i).Value = 0 Then Rows(i).Delete 'supprime aussi cellule vide
   Next i

   Application.Calculation = xlAutomatic
   Application.ScreenUpdating = True

   Me.Protect "motdepasse", True, True, True

End Sub
 
Bonjour,

Sans fichier, un code pourrait être lent en fonction du nombre de lignes à traiter.
La boucle commence par la dernière ligne.
VB:
Sub supp_ligne_zero_formule()
   Dim dl As Long, i As Long
   Me.Unprotect "motdepasse"

   Application.ScreenUpdating = False
   Application.Calculation = xlManual

   dl = Range("C" & Rows.Count).End(xlUp).Row
   For i = dl To 16 Step -1
      If Range("C" & i).Value = 0 Then Rows(i).Delete 'supprime aussi cellule vide
   Next i

   Application.Calculation = xlAutomatic
   Application.ScreenUpdating = True

   Me.Protect "motdepasse", True, True, True

End Sub
Merci bien !
je regarde et te reviens
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
95
Retour