Suppression des lignes où cellule vide dans une colonne x
Brutalizer
-
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
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 ?
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 ?
A voir également:
- Suppression des lignes où cellule vide dans une colonne x
- Déplacer une colonne excel - Guide
- Forcer suppression fichier - Guide
- Site x - Guide
- Sites X : Pornhub, YouPorn et Redtube sont de nouveau accessibles en France - Guide
- Aller à la ligne dans une cellule excel - Guide
2 réponses
Bonjour
@skk201. Salut à toi, je pense qu'en partant de la fin le code est plus simple
Cdlmnt
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
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.
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
Super malin pour éviter le saut de ligne lors de la suppression ;)
J'y penserai la prochaine fois !
Merci