Explication de macro

Résolu
toopey77 -  
 toopey77 -
Bonjour à tous,

voila je vous expose mon probleme, j'ai chercher des réponses, mais aucune n'est assez précise alors je me lance:

quelqu'un pourrait il m'expliquer cette macro?

Sub ef2()

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

que fait elle précisément svp?

normalement elle est censée supprimer un ligne entiere si la colonne "H" est vide...
elle le fait bien mais pas lorsque je n'ai que 6 lignes de remplis... je ne comprends pas trop.

je précises que je debute en VBA.

Merci beaucoup à tous.

2 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Oui c'est tout à fait cela les lignes dont les cellules vide colonne H sont supprimées

    mais le nom de la macro ne convient pas Excel confond ef2 à une adresse cellule
    Sub ef2() il serait bon de donner un nom différent Sub ef() par exemple ou Sub titi() etc

    cette ligne recherche les limites de ton tableau et se basant sur la colonne G qui est censée être la plus longue
    For l = Cells(65256, 7).End(xlUp).Row To 1 Step -1
    si ce devait être la colonne A on aurait écrit
    For l = Cells(65256, 1).End(xlUp).Row To 1 Step -1

    et cette ligne supprime les lignes dont les cellules en H sont vide entre la ligne 1 définie sur la ligne précédente To 1 et la dernière ligne du tableau Cells(65256, 7).End(xlUp).
    If Cells(l, 8).Value = "" Then Cells(l, 8).EntireRow.Delete

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    1
  2. toopey77
     
    Super ;) merci Mike-31

    En faite le problème venait de là:

    cette ligne recherche les limites de ton tableau et se basant sur la colonne G qui est censée être la plus longue
    For l = Cells(65256, 7).End(xlUp).Row To 1 Step -1
    si ce devait être la colonne A on aurait écrit
    For l = Cells(65256, 1).End(xlUp).Row To 1 Step -1

    il fallait que je mette (65256,8) car c'est la colone H qui est la fin du tableau ;)

    merci vraiment ;)
    0