supprimer ligne quand cellule en colonne A = ""

nonoTT

XLDnaute Junior
Bonjour
Je recherche à supprimer les lignes dont la valeur en colonne A est vide ou = ""
Voir macro ci jointe.

J'ai 2 problèmes :
- soit la macro ne m'efface pas toutes les ligne
- soit elle tourne en boucle quand j'insère la ligne i = i-1
merci de m'aider à finaliser cette macro.

Code:
Sub macro1 ()
    Cells.Select
    Selection.Copy
    Sheets("Sheet1").Select
    Sheets.Add After:=Sheets(Sheets.Count)
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=True, Transpose:=False
dim i, derlig as long
derlig = Range("A65226").End(xlUp).Row
For i = 2 To derlig
If Range("A" & i) = "" Then
Rows(i).Delete
'i = i-1
End If
Next i
End Sub

cdt
nonoTT
 

Pièces jointes

  • EXEMPLE.xlsx
    15.3 KB · Affichages: 46
  • EXEMPLE.xlsx
    15.3 KB · Affichages: 46
  • EXEMPLE.xlsx
    15.3 KB · Affichages: 46
G

Guest

Guest
Re : supprimer ligne quand cellule en colonne A = ""

Bonjour,

Essaie ceci:
Code:
Sub macro1()
     Cells.Select
     Selection.Copy
     Sheets("Sheet1").Select
     Sheets.Add After:=Sheets(Sheets.Count)
     Cells.Select
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
         :=True, Transpose:=False
On Error Resume Next 'Si SpecialCells ne trouve aucune cellule vide il lève une erreur. On error resume next permet de l'ignore
Range("A2:A" & Range("A65226").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
 End Sub

Sinon, pour les boucles de suppression de ligne, il faut partir de la dernière ligne pour remonter.

A+
 
Dernière modification par un modérateur:

nonoTT

XLDnaute Junior
Re : supprimer ligne quand cellule en colonne A = ""

Ca ne marche pas voir résultat (feuil1).
sinon comment faire une boucle qui part e la fin vers le début ?
Cordialement.
nonoTT
 

Pièces jointes

  • EXEMPLE.xlsx
    18 KB · Affichages: 54
  • EXEMPLE.xlsx
    18 KB · Affichages: 51
  • EXEMPLE.xlsx
    18 KB · Affichages: 51
G

Guest

Guest
Re : supprimer ligne quand cellule en colonne A = ""

Bonjour

Ces deux macros fonctionnent très bien, la première sans boucle est très rapide la seconde plus lente
(Il manquait .EntireRow dans la première version)
Code:
Sub CelaFonctionneTrèsBien()
    Cells.Select
    Selection.Copy
    Sheets("Sheet1").Select
    Sheets.Add After:=Sheets(Sheets.Count)
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                                                  :=True, Transpose:=False
    On Error Resume Next    'Si SpecialCells ne trouve aucune cellule vide il lève une erreur. On error resume next permet de l'ignore
    Range("A2:A" & Range("A65226").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Sub CelaFonctionneAvecBoucle()
    Cells.Select
    Selection.Copy
    Sheets("Sheet1").Select
    Sheets.Add After:=Sheets(Sheets.Count)
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                                                  :=True, Transpose:=False
    Dim i As Long
    For i = Range("A65226").End(xlUp).Row To 2 Step -1
        If Cells(i, 1) = "" Then Cells(i, 1).EntireRow.Delete
    Next
   
End Sub

A+
 

Discussions similaires

Réponses
3
Affichages
591

Statistiques des forums

Discussions
312 322
Messages
2 087 284
Membres
103 507
dernier inscrit
tapis23