XL 2010 supprimer les lignes dont la cellule en colonne p est un zéro

  • Initiateur de la discussion Initiateur de la discussion polyteis
  • Date de début Date de début

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 !

polyteis

XLDnaute Occasionnel
Bonjour,

j'ai trouvé ce petit code, qui à l'origine etait ecrit pour supprimer les cellules vides
je l'ai adapté pour des cellules à 0 de ma colonne p
quand je le lance j'ai une erreur " dépassement de capacité" .
mon tableau fait 50000 lignes
Sub Supprimer_zero()
Dim n As Integer
Application.ScreenUpdating = False
For n = Range("P65536").End(xlUp).Row To 9 Step -1
If (Range("P" & n) = 0) Then
Rows(n).Delete
End If
Next n
End Sub

y a t il un moyen de remedier a cela
merci
 
Bonjour

il vaudrait sans doute mieux appliquer un filtre sur la colonne P, puis supprimer les lignes résultantes de ce filtre
ou alors passer par un tablo vba (au vu des 50 000 lignes)

avec un fichir exemple, ca pourrait aider.. (pas besoin de mettre les 50 000 lignes) juste une dizaine suffit
 
Bonjour à tous
Dim n As Integer
Integer s'arrête à 32 737 donc 50 000 c'est trop pour le pauvre petit.
Utilise
VB:
Dim n as Long
Ou ne fait pas de boucle
Code:
Sub efface()
Dim Rng As Range
Set Rng = Range("q9:q" & Range("P65536").End(xlUp).Row)
With Rng
    .FormulaLocal = "=SIERREUR(LN(P9);"""")"
    .Value = .Value
    On Error Resume Next
    .SpecialCells(xlCellTypeBlanks).EntireRow.Select
    'Ou
    '.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    If Err Then Err.Clear
    .ClearContents
End With
End Sub

Cordialement
 
Bonjour à tous

Integer s'arrête à 32 737 donc 50 000 c'est trop pour le pauvre petit.
Utilise
VB:
Dim n as Long
Ou ne fait pas de boucle
Code:
Sub efface()
Dim Rng As Range
Set Rng = Range("q9:q" & Range("P65536").End(xlUp).Row)
With Rng
    .FormulaLocal = "=SIERREUR(LN(P9);"""")"
    .Value = .Value
    On Error Resume Next
    .SpecialCells(xlCellTypeBlanks).EntireRow.Select
    'Ou
    '.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    If Err Then Err.Clear
    .ClearContents
End With
End Sub

Cordialement
 
Bonjour à tous

Integer s'arrête à 32 737 donc 50 000 c'est trop pour le pauvre petit.
Utilise
VB:
Dim n as Long
Ou ne fait pas de boucle
Code:
Sub efface()
Dim Rng As Range
Set Rng = Range("q9:q" & Range("P65536").End(xlUp).Row)
With Rng
    .FormulaLocal = "=SIERREUR(LN(P9);"""")"
    .Value = .Value
    On Error Resume Next
    .SpecialCells(xlCellTypeBlanks).EntireRow.Select
    'Ou
    '.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    If Err Then Err.Clear
    .ClearContents
End With
End Sub

Cordialement
bonjour
je vais essayer cela
mais avant je vais tenter de comprendre ce code

merci
 
- 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
6
Affichages
335
Réponses
7
Affichages
795
Retour