Supprimer toutes les lignes d'une feuille à partir d'un critère

Bonjour,

J'aimerai supprimer toutes les lignes d'une feuille Excel dès lors que je tombe sur une ligne vide.

En fait, mon tableau contient des données de la ligne 6 à 36 puis de la ligne 36 à 78, il n'y a pas de données écrite, ensuite de la ligne 78 à 145, il y a des données mais qui ne m'intéresse pas et ensuite j'ai des lignes sans données mais qui ne sont pas interprétées comme vide par Excel.

car quand je cherche la dernière ligne non vide de mon tableau par la formule suivant : DernLigne = wscopie1.Range("C" & Rows.Count).End(xlUp).Row, il me donne la ligne 260, ce qui correspond à ma dernière ligne du tableau dépourvue de valeur mais qui fait partie du tableau.

Donc ma question est :

Comment faire une macro VBA qui me permette de supprimer toutes les lignes à partir de la première ligne ne contenant pas de valeur ?

Je vous ai joins des captures écran afin que vous compreniez mieux mon problème....

Merci beaucoup,

Eva

capture routine vba supprimer v2 capture routine vba supprimer

Bonjour EvaNounou

Voici un code qui devrait t'aider, je l'espère

Sub SupLigneVide()
  Dim DernLigne As Long
  Dim Ligne As Long
  ' Avec la feuille active
  With ActiveSheet
    ' Récupérer le numéro de la dernière ligne
    DernLigne = .Range("C" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne à partir de la dernière
    For Ligne = DernLigne To 2 Step -1
      ' Est-ce que la cellule Cx est vide
      If .Range("C" & Ligne).Value = "" Then
        ' Oui, alors on supprime la ligne
        .Range("A" & Ligne).EntireRow.Delete Shift:=xlUp
      End If
    Next Ligne
  End With
End Sub

A+

Bonjour,

Tout d'abord merci beaucoup pour ce programme VBA qui marche très bien.

Donc ce programme me supprime toutes les lignes vides donc c'est parfait mais maintenant j'aimerai supprimer aussi à partir de la ligne où la colonne A est vide, et supprimer toutes les lignes jusqu'à la fin à partir de cette colonne A vide.

J'ai également fait une capture d'écran pour illustrer mes propos car des fois je ne suis pas très claire !!

Merci,

Eva

capture routine vba supprimer v3

C'est bon j'ai réussi !

Voici le code :

Sub DimLig()

Dim Lig, DernLigne As Long

Dim i As Integer

Dim wscopie1 As Worksheet

Set wscopie1 = Worksheets("Données d'entrée Cables")

DernLigne = wscopie1.Range("A" & Rows.Count).End(xlUp).Row

Lig = 6 'première ligne à vérifier

Do While Not IsEmpty(Range("A" & Lig))

Lig = Lig + 1

Loop

MsgBox "La première ligne vide colonne C est la ligne : " & Lig

For i = Lig To DernLigne

Range("A" & Lig).EntireRow.Delete Shift:=xlUp

Next

End Sub

Merci beaucoup pour votre aide,

Eva

Re bonjour,

En fait en Excécutant mon code, j'ai un problème, il me supprime ma deuxième ligne (ligne 2 de la feuille) et celle là je veux la garder car elle fait partie de la présentation.

Voici mon code :

ub SupLigne()

Dim DernLigne As Long

Dim i As Integer

Dim Ligne, Lig As Long

Dim wscopie1 As Worksheet

Set wscopie1 = Worksheets("Données d'entrée Cables")

' Avec la feuille active

With ActiveSheet

' Récupérer le numéro de la dernière ligne

DernLigne = .Range("C" & Rows.Count).End(xlUp).Row

' Pour chaque ligne à partir de la dernière

For Ligne = DernLigne To 2 Step -1

' Est-ce que la cellule Cx est vide

If .Range("C" & Ligne).Value = "" Then

' Oui, alors on supprime la ligne

.Range("A" & Ligne).EntireRow.Delete Shift:=xlUp

End If

Next Ligne

End With

Lig = 6 'première ligne à vérifier

DernLigne = wscopie1.Range("A" & Rows.Count).End(xlUp).Row

Do While Not IsEmpty(Range("A" & Lig))

Lig = Lig + 1

Loop

MsgBox "La première ligne vide colonne C est la ligne : " & Lig

For i = Lig To DernLigne

Range("A" & Lig).EntireRow.Delete Shift:=xlUp

Next

End Sub

Et une capture d'écran de la ligne supprimée alors que je veux la garder !

Merci,

Eva

capture routine vba supprimer v4

En fait, mon code était beaucoup trop compliqué !

Donc voilà, maintenant ça marche !

C'était tout bête ce qu'il fallait écrire :

Sub SupLigne()

Dim DernLigne, Lig As Long

Dim i As Integer

Dim wscopie1 As Worksheet

Set wscopie1 = Worksheets("Données d'entrée Cables")

Lig = 6 'première ligne à vérifier

DernLigne = wscopie1.Range("A" & Rows.Count).End(xlUp).Row

Do While Not IsEmpty(Range("A" & Lig))

Lig = Lig + 1

Loop

MsgBox "La première ligne vide colonne C est la ligne : " & Lig

For i = Lig To DernLigne

Range("A" & Lig).EntireRow.Delete Shift:=xlUp

Next

End Sub

Merci pour votre aide,

Eva

Rechercher des sujets similaires à "supprimer toutes lignes feuille partir critere"