Supprimer les lignes vides dans une plage de données excel

Boulmier

XLDnaute Nouveau
Bonjour à tous,

J'ai déjà lu de multiples sujets sur le topics, mais rien ne fonctionne.

Je copie-colle un data set pour lequel j'ai effectué un tri. Du coup, de nombreuses lignes sont vides, je veux juste les supprimer. By the way, impossible d'insérer un skip blanks dans past special car les cellules vides contiennent des formules.

Mon code VBA :

Selection.PasteSpecial Paste:=xlPasteValues 'Je colle le fameux data de 3 colonnes
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete Shift:=xlShiftUp ' Je supprime les lignes vides

Merci d'avance :)
 

Yurperqod

XLDnaute Occasionnel
Bonjour le forum

Cette macro fonctionne sur mon ordi
'testé sur une feuille avec des données et des lignes vides (sans formules)
VB:
Sub LignesVides()
ActiveSheet.UsedRange.Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

EDITION: S'il y a des formules, les cellules ne sont pas vraiment vides alors
 

zebanx

XLDnaute Accro
Bonjour à tous,

Une piste (code LV2) en mettant les valeurs qui posent problème (ici formule colonne "A") à vide avant de lancer ton code de suppression des lignes vides.

Cdlt
thierry
 

Pièces jointes

  • supprime lignes vides.xls
    43 KB · Affichages: 42

Yurperqod

XLDnaute Occasionnel
Suite

J'ai refais un test avec cette macro sur une feuille où il y a des formules qui renvoient "rien"
Cela marche sur mon fichier de test
VB:
Sub LignesVidesFormules()
Dim DerLig As Long, DerCol As Long
DerLig = Cells(Rows.Count, 1).End(xlUp).Row
DerCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range(Cells(1, DerCol + 1), Cells(DerLig, DerCol + 1)).FormulaR1C1 = "=IF(COUNTBLANK(RC[-" & DerCol & "]:RC[-2])=0,""X"",0)"
Columns(DerCol + 1).SpecialCells(xlCellTypeFormulas, 1).EntireRow.Delete
Columns(DerCol + 1).Delete Shift:=xlToLeft
End Sub
 

Discussions similaires

Réponses
4
Affichages
746

Statistiques des forums

Discussions
314 160
Messages
2 106 518
Membres
109 612
dernier inscrit
hadrim