Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Connaître le nombre de cellules fusionnées verticalement et/ou horizontalement

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

Récemment je demandais comment pouvait-on savoir si une cellule était fusionnée ou pas.
J'avais retenu la solution de mromain :

Public Function IsMerge(zone As Range) As Boolean
'mromain
'Savoir si des cellules sont fusionnées ou pas

IsMerge = zone.MergeCells

End Function

qui donne toute satisfaction.

Supposons maintenant que la cellule, que nous appellerons "lolo", corresponde à la fusion de A1 & A3 :
---> IsMerge(lolo) = VRAI

Si "lolo" correspond à A1 & D1 :
---> IsMerge(lolo) = VRAI

Si "lolo" correspond à A1 & F4 :
---> IsMerge(lolo) = VRAI

Par quel artifice mystérieux pourrait-on récupérer le nombre de lignes et/ou de colonnes correspondant à "lolo", à savoir :
- dans le 1er cas : 3 lignes
- dans le 2ème cas : 3 colonnes
- dans le 3ème cas : 4 lignes et 6 colonnes
 
Re : Connaître le nombre de cellules fusionnées verticalement et/ou horizontalement

Bonsoir,

peut être comme ceci, pour les lignes :

Code:
Function nblignes(zone As Range) As Byte
nblignes = zone.Rows.Count
End Function

pour les colonnes :

Code:
Function nbcolonnes(zone As Range) As Byte
nbcolonnes = zone.Columns.Count
End Function

bonne soirée et / ou bonne journée
@+
 
Re : Connaître le nombre de cellules fusionnées verticalement et/ou horizontalement

Re

tu peux ensuite appeler les 2 fonctions pour récupérer le nombre de lignes et de colonnes :

Code:
Sub test()
MsgBox "Nb de lignes : " & nblignes(Range("toto").MergeArea) & vbLf & _
    "Nb de colonnes : " & nbcolonnes(Range("toto").MergeArea)
End Sub

@+
 
Re : Connaître le nombre de cellules fusionnées verticalement et/ou horizontalement

Re

oui, à priori c'est dépendant du fait que la plage nommée soit fusionnée avant ou après, test peut être ce code, semble fonctionner chez moi...

Code:
Option Explicit
Function nblignes(PlageNommee As String) As Byte
If Names(PlageNommee).RefersToRange.Rows.Count > 1 Then
    nblignes = Range(PlageNommee).Rows.Count
Else
    nblignes = Range(PlageNommee).MergeArea.Rows.Count
End If
End Function
Function nbcolonnes(PlageNommee As String) As Byte
If Names(PlageNommee).RefersToRange.Columns.Count > 1 Then
    nbcolonnes = Range(PlageNommee).Columns.Count
Else
    nbcolonnes = Range(PlageNommee).MergeArea.Columns.Count
End If
End Function
Sub test()
MsgBox "Nb de lignes : " & nblignes("toto") & vbLf & _
    "Nb de colonnes : " & nbcolonnes("toto")
End Sub

bonne journée
@+
 
Re : Connaître le nombre de cellules fusionnées verticalement et/ou horizontalement

Bonjour Magic_Doctor, Pierrot93,

voici une autre solution :
Code:
Public Function NbColumns(zone As Range) As Integer
NbColumns = zone.MergeArea.Columns.Count
End Function

Public Function NbRows(zone As Range) As Integer
NbRows = zone.MergeArea.Rows.Count
End Function

a+
 
Re : Connaître le nombre de cellules fusionnées verticalement et/ou horizontalement

Re, bonjour Romain

@Romain
attention, ce code provoquera une erreur, si la fusion des cellules a eut lieu après avoir nommé la plage...

@+
 
Re : Connaître le nombre de cellules fusionnées verticalement et/ou horizontalement

Bonjour,

Je réponds avec du retard, car ici nous sommes en vacances et on crève de chaud !

Merci Pierrot93 & mromain pour vos solutions.
C'est curieux, j'ai essayé la solution de mromain, et elle fonctionne très bien même après avoir nommé la plage. À moins que je n'aie pas bien compris la remarque de Pierrot93.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

E
Réponses
4
Affichages
2 K
excel_noob
E
J
Réponses
1
Affichages
2 K
S
Réponses
3
Affichages
2 K
Stéphane
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…