Suppression des lignes où cellule vide dans une colonne x

Fermé
Brutalizer - 22 sept. 2014 à 11:16
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 23 sept. 2014 à 15:54
Bonjour à tous,

La question à déjà été posée sur le forum, mais je n'arrive pas à l'appliquer à mon fichier. Je suis plus que débutant dans les macros, alors une aide pour bien comprendre (traduire) certains codes m'appranderont petit à petit à mieux comprendre VBA.

Voici mon problème, sûrement simple à résoudre. Dans mon fichier d'une 50aine de lignes, la cellule se trouvant dans la colonne F est vide, il faudrait supprimer toute la ligne uniquement quand cette colonne est vide. Parfois il y a des données et parfois pas.



Une aide ?

2 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
22 sept. 2014 à 21:41
Bonjour

Const lideb = 1
Const lifin = 50
Const coas = "F"

Public Sub SuppLignes()
Dim li As Long
With ActiveSheet
For li = lifin To lideb Step -1
If .Range(coas & li).Value = "" Then Rows(li).EntireRow.Delete
Next li
End With
End Sub

@skk201. Salut à toi, je pense qu'en partant de la fin le code est plus simple

Cdlmnt
1
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
23 sept. 2014 à 15:54
Salut !

Super malin pour éviter le saut de ligne lors de la suppression ;)

J'y penserai la prochaine fois !

Merci
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
22 sept. 2014 à 13:40
Bonjour Il y a le code si dessous qui fonctionne, il peut parfois être un peut gourmand. Et s'il y a 5 fois de suite la valleur de la colonne F est égale à ou "" Alors il arrête l'exécution pour ne pas faire de boucle infinie.

Après à vous de voir comment vous voulez l'executer.

Il est aussi possible de le rendre moins gourmand si on est sûr que la colonne "A" par exemple contienne toujours une valeur que F soit vide ou non.

Sub effacer()
Dim C As Byte 'Numéro de la colonne à controler
    C = 6
Dim Compteur As Byte 'Evite les boucle infinie
    Compteur = 0
For L = 1 To 100 'Controle les lignes 1 à 100
    If Cells(L, C).Value = "" Or Cells(L, C).Value = 0 Then 'Controle si vide
        Rows(L & ":" & L).Delete Shift:=xlUp 'Efface la ligne complète
        Compteur = Compteur + 1
        If Compteur = 5 Then Exit For 'Contrile si le compteur n'est pas égal à 5, s'il est = a 5 alors il ferme la boucle
        L = L - 1 'Recontrole la même ligne (Car la ligne vide prendra les valeur de la ligne en dessous
    Else
        Compteur = 0
    End If
Next
End Sub

0