Explication de macro

Résolu/Fermé
toopey77 - 23 avril 2013 à 18:14
 toopey77 - 23 avril 2013 à 18:49
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.

A voir également:

2 réponses

Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 23/04/2013 à 18:28
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
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