Supprimer des lignes vides avec une macro

matiz59

XLDnaute Nouveau
Bonjour,
tous les mois, je dois supprimer des lignes vides (parfois une centaine voire plus) d'un tableau excel.
Je sais qu'il est possible de les supprimer grâce à une macro mais je n'arrive pas l'écrire.

en pièce jointe vous trouverez un exemple de fichier :
Le but est de supprimer les lignes vides (11, 14, 17, 20 ....)
Le mieux serait d'affecter une macro à un bouton, de cliquer sur ce bouton chaque début de mois pour me faire gagner pas mal de temps.

Je vous remercie d'avance.

Pierre
 

Pièces jointes

  • MERCI.xls
    19.5 KB · Affichages: 78
  • MERCI.xls
    19.5 KB · Affichages: 87
  • MERCI.xls
    19.5 KB · Affichages: 86

JNP

XLDnaute Barbatruc
Re : Supprimer des lignes vides avec une macro

Bonjour Matiz59 et bienvenue :),
Jettes un œil aux discussions similaires en bas à gauche ou fait une petite recherche sur le forum (la loupe en haut), le sujet a été tellement de fois traité que tu trouveras du clef en main :rolleyes:...
Bonne suite :cool:
 

matiz59

XLDnaute Nouveau
Re : Supprimer des lignes vides avec une macro

merci pour le mesage d'accueil JNP, :)

j'ai jetté un oeil sur les forums mais je n'ai pas trouvé mon bonheur.
Je vais continuer à chercher, mais si tu as un petit truc, n'hésite pas.

a bientôt.

Pierre
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Supprimer des lignes vides avec une macro

Bonjour Matiz et bienvenu, bonjour JNP, bonjour le forum,

En pièce jointe ton fichier avec un bouton et le code ci-dessous :
Code:
Private Sub CommandButton1_Click()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim x As Integer 'déclare la variable x (incrément)
 
dl = Cells(Application.Rows.Count, 7).End(xlUp).Row 'définit la derrnière ligne dl
For x = dl To 10 Step -1 'boucle inversée de la dernière ligne à la ligne 10
    'si le nombre de cellules vides des colonnes A à G de la ligne est égal à 7, efface la ligne
    If Application.WorksheetFunction.CountBlank(Range(Cells(x, 1), Cells(x, 7))) = 7 Then Rows(x).Delete
Next x 'prochaine ligne de la boucle
End Sub

Le fichier :
 

Pièces jointes

  • Matiz_v01.xls
    32 KB · Affichages: 77

Pierrot93

XLDnaute Barbatruc
Re : Supprimer des lignes vides avec une macro

Bonjour à tous

une solution parmi d'autres, en testant uniquement la colonne D, semble coller à ton fichier...
Code:
With Sheets("Feuil1")
    On Error Resume Next
    .Range("D10", .Range("D65536").End(xlUp)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    On Error GoTo 0
End With

bon après midi
@+
 

matiz59

XLDnaute Nouveau
Re : Supprimer des lignes vides avec une macro

Merci robert,
merci aussi pierrot mais la réponse de robert me va parfaitement car il teste toutes les colonnes et non pas seulement la colonne D. (mon tableau risque d'évoluer)

merci beaucoup à vous et à EXCEL downloads
Bonne après midi également.


Pierre
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes vides avec une macro

Bonsoir


Histoire de varier les plaisirs
VB:
Sub Macro1() ' pour un clin d'oeil à SoftMama qui se fait rare lui aussi
With [H7].Resize([G65536].End(xlUp).Row)
.FormulaR1C1 = "=IF(COUNTBLANK(RC[-7]:RC[-1])=7,1,"""")"
.Value = .Value
.SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete
End With
End Sub
 

klin89

XLDnaute Accro
Re : Supprimer des lignes vides avec une macro

Bonjour à tous :):):)

J'ai plagié Hasco :confused:

On supprime les lignes vides en un seul bloc.

VB:
Sub Supprimer_Lignes_Vides()
Dim derligne As Long, ligne As Long, Plage As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
derligne = Cells(Application.Rows.Count, 7).End(xlUp).Row
For ligne = derligne To 9 Step -1
  If Application.WorksheetFunction.CountBlank(Cells(ligne, 1).Resize(, 7)) = 7 Then
    If Plage Is Nothing Then
      Set Plage = Rows(ligne)
    Else
      Set Plage = Union(Plage, Rows(ligne))
    End If
  End If
Next ligne
If Not Plage Is Nothing Then Plage.EntireRow.Delete
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Klin89
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Supprimer des lignes vides avec une macro

Bonjour,

Suppression rapide: voir PJ

-Certaines colonnes contiennent des formules
-Les lignes à supprimer sont placées en fin de tableau => suppression rapide

Code:
Sub supLignesRapide()
  Application.ScreenUpdating = False
  Range("H10:H" & [C65000].End(xlUp).Row).FormulaR1C1 = _
     "=IF(sum(RC[-7]:RC[-1])=0,""sup"",0)"
  [A10:H1000].Sort Key1:=Range("H10"), Order1:=xlAscending, Header:=xlNo
  Range("h10:h65000").SpecialCells(xlCellTypeFormulas, 2).EntireRow.Delete
  Columns("h:h").Clear
End Sub

JB
 

Pièces jointes

  • Copie de MERCI.xls
    32 KB · Affichages: 72
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 555
Messages
2 089 561
Membres
104 211
dernier inscrit
clubdesjeunesdela7