Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compter le nombre de colonne de celulles fusionnées


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Compter le nombre de colonne de celulles fusionnées
    Bonjour,

    Je sèche sur un problème de comptage de cellule.

    Sur une ligne, je veux vérifier que les cellules soit non vide et j'ajoute le nombre de colonne des cellules fusionnées à un compteur.

    Malheureusement, cela ne fonctionne pas.

    voici mon code:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Function NbCells(Plage As Range)
        ' Déclaration des variables
        Dim I As Integer
        Dim mG
        Dim test
        Dim ligne As Long
        Dim derCol As Long
        Dim occupation
        ' Fin des déclarations
        ligne = Plage.Row
        derCol = Plage.Columns.Count + Plage.Column - 1
        For I = 115 To derCol
            If Cells(ligne, I).Value <> "" Then
                Cells(ligne, I).Select
                occupation = Range(Selection.Address).Count + occupation
            End If
        Next I
        NbCells = occupation
    End Function


    Finalement, il compte les cellules pour 1 quelles soient fusionnées ou pas.

    Auriez-vous une idée?

    Merci d'avance

    Cordialement

    Zuthos

  2. #2
    Expert confirmé
    Bonjour,
    Citation Envoyé par Zuthos Voir le message
    Finalement, il compte les cellules pour 1 quelles soient fusionnées ou pas.

    Auriez-vous une idée?
    Les fusions sont une véritable plaie a gérer en VBA
    Si tu le peux je conseille vivement de toutes les enlever, sais-tu que tu peux reproduire le visuel de la fusion dans format -> alignement -> horizontal -> centrer sur plusieurs colonnes
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  3. #3
    Membre habitué
    Citation Envoyé par halaster08 Voir le message

    Les fusions sont une véritable plaie a gérer en VBA
    Je suis d'accord

    Citation Envoyé par halaster08 Voir le message
    Si tu le peux je conseille vivement de toutes les enlever, sais-tu que tu peux reproduire le visuel de la fusion dans format -> alignement -> horizontal -> centrer sur plusieurs colonnes
    Oui, je sais que cela est possible. En plus, cela permet de faire des effets en changeant la couleur du fond de chaque cellule.
    Toutefois, cela ne réglera pas mon problème.

    A savoir, compter le nombre de colonne.

  4. #4
    Inactif  
    re
    re
    salut

    c'est mergearea

    exemple la cellule C4 si elle fait parti d'une fusion
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    msgbox  cells(4,3).mergearea.address'donne l'adresse de la fusion 
    msgbox  cells(4,3).mergearea.cells(1).address'donne l'adresse de la cellule(1) de la fusion(celle qui est considérée)
    msgbox cells(4,3).mergearea.columns.count'donne le nombre de colonne de la fusion
    msgbox  cells(4,3).mergearea.rows.count'donne le nombre de ligne de la fusion

    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert éminent sénior
    Citation Envoyé par Zuthos Voir le message
    Sur une ligne, je veux vérifier que les cellules soit non vide et j'ajoute le nombre de colonne des cellules fusionnées à un compteur.

    Finalement, il compte les cellules pour 1 quelles soient fusionnées ou pas.
    A la lecture de ta demande, je n'arrive pas à comprendre si tu veux que plusieurs cellules fusionnées entre elles soient compter comme une seule cellule ou comme plusieurs.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.