Compter cellule fusionnées comme une cellule et non plusieurs

Ayting69 Messages postés 42 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,

Je suis sous Excel 2019

J'ai fais un tableau ou je compte les cellule par couleurs avec les fonctions NB_SI_COULEUR et NO_COULEUR

Le problème c'est que par exemple si je fusionne 3 cellule, la fonction compte 3 cellule et non pas une seule.

Est il possible de programmer excel pour qu'il compte qu'une cellule fusionnée est égale à une cellule peu importe combien ont étés fusionnées ?

Merci d'avance.

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    voici le code pour détecter les cellules fusionnées. A adapter à ton environnement

    Sub detecteFusion()
    Dim cellule As Range
    Dim derligne As Long
     derligne = Range("A" & Rows.Count).End(xlUp).Row
    For Each cellule In Range("A1:A" & derligne) 'adapter plage cellule
    If Range(cellule.Address).MergeCells Then
    'ton code
    End If
    Next cellule
    End Sub


    0
    1. Ayting69 Messages postés 42 Statut Membre
       
      Merci pour ta réponse, je suis un utilisateur très casu donc j'ai regarder où et comment entrer ce code donc j'ai trouver j'ai rentrer le code dans insertion module :

      Sub detecteFusion()
      Dim cellule As Range
      Dim derligne As Long
      derligne = Range("A" & Rows.Count).End(xlUp).Row
      For Each cellule In Range("C3:C8000" & derligne)
      If Range(cellule.Address).MergeCells Then
      End If
      Next cellule
      End Sub


      J'ai enlever la partie "ton code" car je n'en ai pas tout simplement et.. ensuite j'ai essayé d'enregistrer puis d'actualiser le comptage mais ça ne fonctionne pas donc qu'est ce qu'il faut faire pour que ça fonctionne ?
      0
      1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Ayting69 Messages postés 42 Statut Membre
         
        Voici un exemple avec la recherche d'un mot avec des cellules fusionnées. Tu peux l'adapter avec les couleurs:

        https://www.commentcamarche.net/faq/18089-vba-tester-une-plage-qui-contient-des-cellules-fusionnees

        voilà ton code corrigé:

        Sub detecteFusion()
        Dim cellule As Range
        Dim derligne As Long
        derligne = Range("C" & Rows.Count).End(xlUp).Row
        For Each cellule In Range("C3:C" & derligne)
        If Range(cellule.Address).MergeCells Then
        End If
        Next cellule
        End Sub
        0
  2. Ayting69 Messages postés 42 Statut Membre
     
    Merci pour ta réponse, j'ai essayé de comprendre mais honnêtement je ne pige rien, quand je rentre le code dans insertion module et que je test rien ne se passe


    Sub detecteFusion()
    Dim cellule As Range
    Dim derligne As Long
    derligne = Range("C" & Rows.Count).End(xlUp).Row
    For Each cellule In Range("C3:C" & derligne)
    If Range(cellule.Address).MergeCells Then
    Col = C
    Color = "NO_COULEUR(A3;A6)"
    End If
    Next cellule
    End Sub


    et ça me met une erreur

    en plus une fois que je rentre le code je clique sur executer mais je sais même pas si c'est ça qu'il faut faire

    Bref du coup ce que j'ai fais c'est que j'ai modifié légèrement les couleurs des cellule ou il y'a du vide pour que ça soit invisible à l'oeil nu et que le code couleur soit différent et ça marche, pas automatique mais bien moins compliqué que tout ce schmilblick ! Je me suis aventuré sur un terrain un peu trop épineux pour moi, merci pour ta contribution ^^
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Voici un exemple pour détecter les cellules fusionnées

      Sub detecteFusion()
      Dim cellule As Range
      Dim derligne As Long
      derligne = Range("C" & Rows.Count).End(xlUp).Row
      For Each cellule In Range("C3:C" & derligne)
      If Range(cellule.Address).MergeCells Then
      MsgBox "cellule fusionnées," & cellule.Address & " code couleur: " & cellule.Interior.ColorIndex
      End If
      MsgBox "cellule," & cellule.Address & " code couleur: " & cellule.Interior.ColorIndex
      Next cellule
      End Sub
      


      a adapter
      0
      1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > cs_Le Pivert Messages postés 8437 Statut Contributeur
         
        Est il possible de programmer excel pour qu'il compte qu'une cellule fusionnée est égale à une cellule peu importe combien ont étés fusionnées ?

        comme ceci, à adapter
        Sub detecteFusion()
        Dim cellule As Range
        Dim derligne As Long
        Dim i As Integer, j As Integer
        derligne = Range("C" & Rows.Count).End(xlUp).Row
        For Each cellule In Range("C3:C" & derligne)
        If Range(cellule.Address).MergeCells Then
        'MsgBox "cellule fusionnées," & cellule.Address & " code couleur: " & cellule.Interior.ColorIndex
        j = cellule.Count
        j = j + 1
        Else
        'MsgBox "cellule," & cellule.Address & " code couleur: " & cellule.Interior.ColorIndex
        i = i + 1
        End If
        Next cellule
        MsgBox i + j
        End Sub
        


        @+ Le Pivert
        0