Autres Suppression de ligne particulières

lynyrd

XLDnaute Impliqué
Bonsoir le forum
est ce possible par VBA de supprimer la ligne entière s'il n'y a rien dans la colonne "B"
Merci.
 

Pièces jointes

  • zzzzz.xlsm
    39.5 KB · Affichages: 12

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @lynyrd,

Testez le code suivant:
VB:
Sub SuppLigneSiBvide()
With Sheets("Feuil1")
  On Error Resume Next
  .Range("b1:b" & .Cells(.Rows.Count, "a").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub

Ou plus court:
VB:
Sub SuppLigneSiBvide()
  Sheets("Feuil1").Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour lynyrd, mapomme, le forum,

La macro de mapomme peut prendre beaucoup de temps sur de grands tableaux.

Voyez le fichier joint avec - seulement - 18360 lignes.

Cette macro est beaucoup plus rapide mais il faut défusionner les cellules pour pouvoir trier :
VB:
Sub Suppression_job75()
Dim t, col%, h&
t = Timer
Application.ScreenUpdating = False
With Sheets("Feuil1").UsedRange
    .UnMerge 'défusionne pour pouvoir trier
    col = .Columns.Count + 2
    .Columns(col) = 1
    Intersect(.Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow, .Columns(col)) = ""
    .EntireRow.Sort .Columns(col), Header:=xlNo 'tri pour regrouper et accélérer
    .Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    .Columns(col) = ""
    '---refusionne (à adapter au besoin)---
    h = .Rows.Count
    With .Cells(1, 3).Resize(, 6)
        .Merge
        .AutoFill .Resize(h), xlFillFormats
    End With
    With .Cells(1, 9).Resize(, 6)
        .Merge
        .AutoFill .Resize(h), xlFillFormats
    End With
End With
MsgBox "Suppression en " & Format(Timer - t, "0.00 \s"), , "job75"
End Sub
A+
 

Pièces jointes

  • zzzzz(1).xlsm
    972.1 KB · Affichages: 7
Dernière édition:

Discussions similaires

Réponses
2
Affichages
403

Statistiques des forums

Discussions
312 106
Messages
2 085 351
Membres
102 871
dernier inscrit
Maïmanko