Il n’est pas évident de connaître, par exemple, le contenu d’une cellule située dans une plage qui contient des cellules simples et des cellules fusionnées surtout si les premières cellules des cellules fusionnées ne commencent pas sur la même colonne que la colonne testée.
Pour être plus clair, nous allons tester la colonne 5 (E) : supposons que des cellules d'une ligne soient fusionnées de B à F, pour cette ligne, le test doit donc se faire sur la colonne B et non E .
Le test consiste à rechercher un mot dans la colonne E et à supprimer la ligne correspondante si le mot est trouvé dans une des cellules de la colonne E.
Sub SupprimerligneAvecMerge()
Dim Lig As Long
Dim Col As Integer
Dim Mot As String
Dim Mg, TB
'pour l'exemple, la colonne à tester =5
Col = 5
Mot = "LeMot" 'remplacer LeMot par celui que vous désirez chercher
For Lig = Cells(65536, Col).End(xlUp).Row To 1 Step -1
Set Mg = Cells(Lig, Col).MergeArea
TB = Split(Mg.Address, ":")
If Cells(Lig, TB(0)).Value = Mot Then
Rows(Lig).Delete
End If
Next Lig
End Sub
Remarque : le test du mot prend la casse en compte, de ce fait : LeMot, lemot, LEMOT etc, sont considérés comme des mots différents, si vous ne voulez pas qu'ils soient considérés comme tel vous devrez adapter la macro ci-dessus avec celle de
cette autre astuce