Bonjour,
Je cherche à supprimer une ligne d'une feuille d'un classeur si son contenu à partir de la colonne B est vide.
Peut-on utiliser la méthode find ? Comment ?
Merci d'avance.
Julien.
Bonjour,
Je cherche à supprimer une ligne d'une feuille d'un classeur si son contenu à partir de la colonne B est vide.
Peut-on utiliser la méthode find ? Comment ?
Merci d'avance.
Julien.
Bonjour,
Une solution possible :
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sub SuppressionDeLigneAPartirDeLaColonneB() Dim LigneDebut As Long Dim LigneFin As Long Dim LigneASupprimer As Long With ActiveSheet LigneDebut = 2 LigneFin = .Cells(.Rows.Count, 1).End(xlUp).Row If LigneFin = LigneDebut Then Exit Sub For LigneASupprimer = LigneFin To LigneDebut Step -1 If WorksheetFunction.CountA(.Range(.Cells(LigneASupprimer, 1).Offset(0, 1), .Cells(LigneASupprimer, 1).Offset(0, .Columns.Count - 1))) = 0 Then .Rows(LigneASupprimer).Delete Shift:=xlUp End If Next LigneASupprimer End With End Sub
Bonjour le fil, bonjour le forum,
Une autre proposition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub Macro2() Dim O As Worksheet 'déclare la variable O (Onglet) Dim TC As Variant 'déclare la variable TC (Tableau de Cellules) Dim LAF As Range 'déclare la variable LAF (Lignes À Effacer) Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas) TC = O.Range("A1").CurrentRegion 'définit le tableau de cellules TC (à adapter à ton cas) Set LAF = O.Range("A1") 'initialsie la plage LAF For I = 1 To UBound(TC, 1) 'boucle 1 : sur toutes les lignes I du tableau de cellules TC For J = 2 To UBound(TC, 2) 'boucle 2 : sur toutes les colonnes J du tableau TC (en partant de la seconde (=> colonne B)) If TC(I, J) <> "" Then Exit For 'condition L si la cellule n'est pas vide, sort de la boucle 2 'redéfinit la plage LAF (la ligne I si LAF est égale à A1, sinon l'union de LAF et de la ligne I) Set LAF = IIf(LAF.Address = "$A$1", Rows(I), Application.Union(LAF, Rows(I))) Next J 'prochaine colonne de la boucle 2 Next I 'prochaine ligne de la boucle 1 LAF.Delete 'supprime la plage LAF End Sub
Partager