Problème Supression ligne VBA

Amateur -  
 Amateur -
Bonjour,

Je viens ici pour savoir si vous pouvez me dépanner ..

Je voudrais appliquer la suppression de la ligne si elle est vide mais seulement à partir de la troisième .. Le soucis c'est qu'avec mon programme ca supprime également la 2 ligne ..

CODE :

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

For i = 3 To 400 Step 1

If Cells(i, 21) = "" Then Rows(i).Delete Shift:=xlUp 'Si la cellule de la colonne 5 (EQUIPement) est vide alors suprimer ligne ( ligne inutile)

Next i

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,
    Il me semble qu'iil faut boucler en partant de la fin.

    For i = 400 To 3 Step -1
    'Si la cellule de la colonne 5 (EQUIPement) est vide alors suprimer ligne ( ligne inutile)
    If Cells(i, 21) = "" Then 
     Rows(i).Delete Shift:=xlUp 
    End IF
    
    Next 
    

    0
    1. Amateur
       
      Merci Jordane ca marche niquel !!
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    pourquoi une boucle ?

    Sub Supprimer_si_vide()
    Dim Ligne As Long

    On Error Resume Next
    Ligne = Columns("U").Find("*", , , , , xlPrevious).Row
    Range("U3:U" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    End Sub
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Oui en effet,
      je n'ai pas pensé à lui "améliorer" son code.
      Bien vu.
      J'espère qu'il lira ta réponse.
      0
    2. Amateur
       
      Merci à vous deux pour vos réponse , je suis alternant et je viens seulement de revenir en entreprise ( d'où ma réponse tardive ) je vous remercie grandement pour votre aide , j'ai opté pour la solution de Jordane qui marche , je n'ai pas réussi à faire marcher la tienne michel , a bientôt sûrement :)
      0