VBA - Tester une plage qui contient des cellules fusionnées

Décembre 2016


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

A voir également :

Ce document intitulé «  VBA - Tester une plage qui contient des cellules fusionnées  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.