Optimiser une macro excel

toopey77 -  
 Toopey77 -
Bonjour,

je souhaites supprimer une ligne entière si la case en H est vide ou ""

j'ai réussi à faire cette MACRO :

Sub effacer()

Application.ScreenUpdating = False

Dim l As Long
For l = Cells(5000, 8).End(xlUp).Row To 1 Step -1
If Cells(l, 8).Value = "" Then Cells(l, 8).EntireRow.Delete
Next l

For i = 5000 To 1 Step -1
If IsEmpty(Worksheets("element").Cells(i, 8)) = True Then Worksheets("element").Rows(i).Delete
Next i

End Sub

le probleme est le suivant: la macro est assez longue à se mettre en place de plus je souhaiterais ke la macro prenne les colonnes suivantes ("H10:H5000").

si vous pouviez m'aider à optimiser cette macro ce serait super

voilà merci à tous

4 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Cela se fait sans boucle et rapidement

    Sub Supprimer_si_vide() 
        Dim Ligne As Long 
        On Error Resume Next 
        Ligne = Columns("A").Find("*", , , , , xlPrevious).Row 
       Range("H1:H" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 
    End Sub 
    


    Michel
    1
    1. Toopey77
       
      cette macro ne fonctionne pas.dslé
      0
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Tu peux supprimer ta seconde boucle qui n'est pas utile car ta première supprime déjà les lignes vides.
    0
  3. Toopey77
     
    je suis désolé mais cette macro ne fonctionne pas... je l'actionne et rien de se passe...
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      à mon avis, ce n'est pas la macro qui ne fonctionne pas... mais c'est toi qui ne l'actionne pas correctement car la macro est totalement opérationnelle et rapide.
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      Tout à fait,Les deux solutions proposées fonctionnent
      C'est plutôt nous qui sommes désolés
      MERCI QUAND MEME

      demo:
      https://www.cjoint.com/?3DijNg8zMyI
      0
    3. toopey77
       
      Michel_m excuses moi vraiment, je te remercie de m'avoir aidé, mais je ne sais pas pourquoi cette macro ne fonctionne pas.
      je suis désolé.
      vraiment excuses moi

      je souhaite juste que lorsqu'il y a pas une croix dans la colonne h ça t'efface la ligne correspondante
      0
    4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      Si en colonne H ta cellule est vide ta ligne s'efface bien mais toi tu dois avoir un ou des espaces, ou bien une formule : vérifies tes cellules soi-disant vides.
      0
    5. Toopey77
       
      Bonjour gbinforme,

      Justement voila le probleme, j'ai des cellules vide en "h" mais j'ai des cellules "" (formule dont le resultat est "")
      Je penses que tu as mis le doigt sur le probleme.

      Aurais tu une modif a me proposer?

      Merci beaucoup
      0