Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer la ligne si elle est vide

  • Initiateur de la discussion Initiateur de la discussion Tophe2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tophe2

XLDnaute Impliqué
Bonjour le forum
J'ai un tableau qui contient des lignes vide (colonne de A à M), comment faire pour que ce code trouvé sur le forum puisse fonctionner car la il supprime uniquement si une cellule de la igne est vide pour ma part il faut que toute la ligne soit de A à M en l'occurence.

Sub supp()
Dim Cel_vide As Range
Dim ad_cel As Integer

For Each Cel_vide In Range("A1:M11000")
If Cel_vide.Value = "" Then
ad_cel = Cel_vide.Row
Rows(ad_cel).Delete
End If
Next Cel_vide
End Sub
Cordialement Christophe.
 
Re : Supprimer la ligne si elle est vide

Bonjour, essaie ceci :
Sub suppr()
For Each cel In Range("A2:A" & [a65000].End(xlUp).Row)
If cel = "" Then
If Range("n" & cel.Row).End(xlToLeft).Address = cel.Address Then cel.EntireRow.Delete
End If
Next cel
End Sub

Bon courage
 
Re : Supprimer la ligne si elle est vide

Bonjour bhbh
merci pour ton code mais il ne focntionne pas totalement c à d qu'il ne supprime pas toutes les lignes vide il en reste après son passage.
Christophe.
 
Re : Supprimer la ligne si elle est vide

Re-,
Attention, ce code ne teste que les cellules de la colonne A pour la rapidité, et vérifie ensuite si toutes les cellules comprises entre la colonne N et A sont vides, c'est à dire entièrement vides (pas d'espaces, ni de formules...).
 
Re : Supprimer la ligne si elle est vide

Bonjour Papapaul
Le code est super il fonctionne bien et j'apprécie les explications au milieu du code pour essayer de comprendre encore mieux le déroulement.
Merci Christophe.
 
Re : Supprimer la ligne si elle est vide

Re,
je reviens sur le fil afin de te demander quelle différence entre mon code et celui de papapaul?
Ils font la même chose, quelques calculs en moins pour moi, donc je ne comprends pas pourquoi il en restait avec mon code!!😕
Comme papapaul n'est pas là, dans cette ligne :
For vLigne = vDernièreligne To 1 Step -1
tu remplace le To 1 par To 7
Bon courage
 
Re : Supprimer la ligne si elle est vide

Bonsoir le fil

bhbh, ta boucle "for each" s'exécute en suivant l'ordre des cellules comprises dans une plage.
Lorsque tu supprimes une celule, la suivante n'est plus évaluée, car portant le même "index" de celle que tu viens de supprimer. De ce fait, même si elle répond aux critères elle ne sera pas supprimée.

j'espère avoir été clair dans mon explication, pas sur...

bonne soirée
@+
 
Re : Supprimer la ligne si elle est vide

re-,
voici le code modifié :

Sub suppr()
Application.ScreenUpdating = False
For cel = [a65000].End(xlUp).Row To 1 Step -1
If Cells(cel, 1) = "" Then
If Range("n" & cel).End(xlToLeft).Address = Cells(cel, 1).Address Then Cells(cel, 1).EntireRow.Delete
End If
Next cel
End Sub
 
Re : Supprimer la ligne si elle est vide

Bonjour le Forum et bhbh, Pierrot et papapaul

Oui effectivement le code fonctionne à condition de l'utiliser plusieurs fois celui ci également et suivant l'explication d'hier de changer le "to 1" pour ne pas prendre en compte les x première ligne il le prend bien en compte mais ne supprime pas les lignes entre.
Ci joint le fichier avec le code de bhbh mais à priori sauf erreur les autres ne fonctionne pas totalement cà d, mettre x ligne libre avant le début du tableau et toutes les lignes vide dans le tableau elles sont supprimées même s'il y a 5 lignes entre.

Cordialement Christophe.
 

Pièces jointes

Re : Supprimer la ligne si elle est vide

re-, effectivement, dans ce cas, il faut trouver la dernière ligne, et comme Currentregion n'aime pas les lignes vides, on va faire une boucle pour la déterminer :

Sub suppr2()
Application.ScreenUpdating = False
x = 5
For i = 1 To 13
y = Cells(65000, i).End(xlUp).Row
If y > x Then x = y
Next i
For cel = x To 5 Step -1
If Cells(cel, 1) = "" Then
If Range("n" & cel).End(xlToLeft).Address = Cells(cel, 1).Address Then Cells(cel, 1).EntireRow.Delete
End If
Next cel
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
784
Réponses
5
Affichages
911
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…