Compter des cellules fusionnées

Bonjour à tous,

Dans un tableau de service pour employés, sous forme de calendrier, j'ai plusieurs valeur identiques suivant les pauses effectuées (matin (101), après midi (201 ou 202) et nuit (301 ou 302)).

Pour plus de lisibilité lors des pauses de nuit, nous fusionnons les cellules et centrons le chiffre "301" ou "302". Seulement, évidemment, cela pose problème lors du comptage des pauses puisque un compte NB.SI renvoie une seule occurrence "301" ou "302". J'avais pensé multiplier le NB.SI par 3 (car trois nuits consécutives en week-end) mais le problème est qu'en semaine il n'y que 2 nuits consécutives, ce n'est donc pas possible.

Mon idée est donc de compter le nombre de cellules fusionnées et d'en enlever une d'office puisque dans le tableau 4 cellules sont fusionnée pour représenter les tris nuits ou trois cellules fusionnées pour 2 nuits.

Je vous joint un tableau hyper simplifier. Les cellules avec occurrence 301 ou 302 ne sont pas fusionnée puisque la solution trouvée actuellement est de mettre les occurrences le jour d début de la pause 301 ou 302 et d'ajouter un jour de Descente de Nuit (DN) après ...

Si ce n'est pas assez clair je peux réexpliquer ^^

Pour info, j'avais tenté de créer une fonction qui compte le nombre de cellule fusionnée, mais cela ne fonction que sur une cellule et non une ligne complète ...

Si quelqu'un a une idée ...

Merci.

47tab-serv.xlsm (37.48 Ko)

bonjour,

2 fonctions personnalisées pour compter le nombre de cellules fusionnées dans une plage ainsi que le nombre de zones fusionnées dans une plage.

Function nbfusion(r As Range)
    'renvoie le nombre de zones de cellules fusionnées dans le range r
    cpf = False
    For Each c In r
        If c.MergeCells Then
            If Not cpf Then nb = nb + 1: cpf = True
        Else
            cpf = False
        End If
    Next c
    nbfusion = nb
End Function

Function nbcelfus(r As Range)
    'renvoie le nombre de cellules fusionnées dans le range r
    For Each c In r
        If c.MergeCells Then nb = nb + 1
    Next c
    nbcelfus = nb
End Function

Tout simplement parfait comme souvent ici.

merci bien

Bonjour,

suite à la demande plus haut, j'ai, dans mon tableau horaire, inséré la formule de calcul afin que la différence entre les deux fonctions renvoie le nombre de nuits de travail. Tout fonctionnait à la perfection jusqu'à ce jour. Mais ça ne va plus.

en effet, le calcul ne se fait plus. Je dois revalider la formule à chaque ligne pour qu'il m'indique le nombre de nuits. Et encore, ça ne fonctionne que si je le fais après qu'il y ait au moins une fusion. Ce qui n'est évidemment pas pratique pour comptabiliser au fur et à mesure que je remplis le tableau.

j'ai essayé de supprimer la formule et la réécrire complètement, cela ne fonctionne pas. Les macro sont évidemment autorisées dans le fichier.

une idée ?

merci déjà et bonne journée.

cordialement,

rékiss

Bonjour,

essaie avec ces versions modifiées, Le recalcul se fera dès que tu appuies sur F9 ou dès que tu modifies le contenu d'une cellule. (mais pas si tu modifies son format)

Function nbfusion(r As Range)
    'renvoie le nombre de zones de cellules fusionnées dans le range r
    Application.Volatile
    cpf = False
    For Each c In r
        If c.MergeCells Then
            If Not cpf Then nb = nb + 1: cpf = True
        Else
            cpf = False
        End If
    Next c
    nbfusion = nb
End Function

Function nbcelfus(r As Range)
    'renvoie le nombre de cellules fusionnées dans le range r
    Application.Volatile
    For Each c In r
        If c.MergeCells Then nb = nb + 1
    Next c
    nbcelfus = nb
End Function

bonjour et merci déjà de ta réponse.

je viens de tester la nouvelle version mais ça ne fonctionne pas. Ni avec f9 ni en modifiant la cellule suivante pour que ça apparaisse... Il faut toujours que je revalide la formule de soustraction...

Bonjour à tous,

tu n'aurais pas passé ton classeur en calcul manuel des fois ?
eric

Bonsoir,

peux-tu nous montrer comment tu utilises ces fonctions, avec un fichier exemple ou ton fichier (anonymisé ou non).

Rechercher des sujets similaires à "compter fusionnees"