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

Macro suppression lignes

  • Initiateur de la discussion Initiateur de la discussion Jultra
  • 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 !

J

Jultra

Guest
Rebonjour au Forum,

J'ai besoin de votre aide. J'espère que je vais être clair, car ce n'est pas évident! 😉

Je dispose d'une base de données dans une page "Prog General". Je la trie selon un critère et je positionne chaque ligne dans 1 des 7 autres pages de mon fichier.

Les lignes se positionnent sur la même ligne que celle de la base de données.
Du coup je peux avoir plusieurs lignes vides sur les 7 pages.
Je désire les supprimer par la macro Sub suppression_lignes_vides().

Le programme marche au début mais ensuite comme je fais m=m-1 (car il peut y avoir plusieurs lignes vides à la suite), il tourne dans le vide car il n'atteint jamais l'indice de la dernière ligne.

J'espère que vous avez compris et que quelqu'un pourra m'aider ou me conseiller au moins.
Merci d'avance!


Voici la partie du programme concernée:

Function indice_derniere_ligne() As Integer
Sheets("Prog General").Select
Dim n As Integer
n = 2
While Not (IsEmpty(Cells(n, "A")))
n = n + 1
Wend
indice_derniere_ligne = n - 1

MsgBox "indice derniere ligne" & n - 1

End Function

Sub suppression_lignes_vides()

Dim m As Integer

For m = 2 To indice_derniere_ligne
Sheets("L100").Select
If Cells(m, "A") = "" Then
Range(Cells(m, "A"), Cells(m, "E")).Select
Selection.Delete Shift:=xlUp
m = m - 1
Else
End If
Next

Range("A1").Select

End Sub
 
Bonjour

essaies juste cette macro sans ta fonction

Sub suppression_lignes_vides()

Dim m As Integer

Application.ScreenUpdating = False

For m = Sheets("L100").Range("A65536").End(xlUp).Row To 2 Step -1
If Sheets("L100").Range("A" & m) = "" Then
Rows(m).EntireRow.Delete
End If
Next

Range("A1").Select

Application.ScreenUpdating = True

End Sub

Bon courage

Pascal
 
Bonjour,

Tu peux essayer cette macro aussi, elle fonctionne sans limite d'un nombre de ligne.

Sub SuppressionLignes()
fin = ActiveSheet.UsedRange.Rows.Count
Range("a1").Select
ActiveCell.Offset(fin - 1, 0).Range("a1").Select
Do While ActiveCell.Row() <> 1
If ActiveCell.Value = "" Then
ActiveCell.EntireRow.Cells().Select
Selection.Delete shift:=xlUp
End If
ActiveCell.Offset(-1, 0).Range("a1").Select
Loop
End Sub

Bon Courage

Safety85
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
715
Réponses
7
Affichages
289
Réponses
8
Affichages
654
Réponses
7
Affichages
346
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…