Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

vba si cellulle dans colone b est vide, delete ligne entière ?

  • Initiateur de la discussion Initiateur de la discussion crx4me
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

crx4me

Guest
reallo,

comment on fait ça ? :\

une macro qui delete la ligne entière si la cellule de la colonne b est vide... a partir de la ligne 4 seulement ...

chu poche la dedans désolé..

Merci!

Guillaume
 
Re : vba si cellulle dans colone b est vide, delete ligne entière ?

Bonsoir Guillaume,

Tu ne précises pas si tu sais utiliser l'éditeur VBA, mais voici quand même la démarche :

Dans la fenêtre de Projet, tu double-cliques dans le module de ta feuille (Feuil1 par exemple)

Dans la liste déroulante de gauche de la fenêtre principale, tu cliques sur Worksheet, dans celle de droite, tu cliques sur Change. Tu obtiens :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
Il ne te reste plus qu'à ajouter :

Application.EnableEvents = False
If Target.Column = 2 And Target.Row > 3 And Target.Value = "" Then Target.EntireRow.Delete
Application.EnableEvents = True


La première ligne empêche que la procédure ne s'exécute en boucle à chaque modification.
La deuxième teste le n° de colonne de la cellule modifiée (Target représente cette cellule), son n° de ligne et son contenu. Si la colonne est 2 (B), si la ligne est supérieure à 3 et si le contenu est vide alors la ligne entière est supprimée.
La troisième et dernière rétablit la détection d'événement, sans quoi la procédure ne serait pas lancée à la prochaine modification.

Tu peux effacer la dernière procédure, inutile dans ce cas. Tu obtiens donc au final :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 2 And Target.Row > 3 And Target.Value = "" Then Target.EntireRow.Delete
Application.EnableEvents = True
End Sub
Cordialement.

Oups, pas rafraîchi. Bonsoir kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
648
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…