VBA - Tester une plage qui contient des cellules fusionnées
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 <bold>LeMot</bold> 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