Détection des cellules fusionnées

Le
JLH974
Bonjour à tous
je vous soumets un problème que je n'arrive pas à résoudre, je sais que
votre sagacité EXCELlente sera d'un grand secours :-)
J'ai un tableau composé en grande partie de cellules fusionnées
verticalement et/ou horizontalement.
Je sais que la valeur qui sera inscrite dans la zone fusionnée sera celle de
la cellule la plus à gauche et la plus haute (du moins je crois que c'est
cela)
Mais comment, à partir de VBA, détecter si une cellule est fusionnée ou non
et si elle l'est avec quelles autres cellules?

Jean-Luc H
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #21543461
Bonjour

Set c = Range("B3")
If c.MergeCells Then MsgBox c.MergeArea.Address


JB
http://boisgontierjacques.free.fr/

On 13 avr, 07:44, "JLH974"
Bonjour à tous
je vous soumets un problème que je n'arrive pas à résoudre, je sais que
votre sagacité EXCELlente sera d'un grand secours :-)
J'ai un tableau composé en grande partie de cellules fusionnées
verticalement et/ou horizontalement.
Je sais que la valeur qui sera inscrite dans la zone fusionnée sera cel le de
la cellule la plus à gauche et la plus haute (du moins je crois que c'e st
cela)
Mais comment, à partir de VBA, détecter si une cellule est fusionné e ou non
et si elle l'est avec quelles autres cellules?

Jean-Luc H
JLH974
Le #21543531
Merci JB
Clair, rapide, efficace... EXCELlent

JLH974


"JB" news:
Bonjour

Set c = Range("B3")
If c.MergeCells Then MsgBox c.MergeArea.Address


JB
http://boisgontierjacques.free.fr/

On 13 avr, 07:44, "JLH974"
Bonjour à tous
je vous soumets un problème que je n'arrive pas à résoudre, je sais que
votre sagacité EXCELlente sera d'un grand secours :-)
J'ai un tableau composé en grande partie de cellules fusionnées
verticalement et/ou horizontalement.
Je sais que la valeur qui sera inscrite dans la zone fusionnée sera celle
de
la cellule la plus à gauche et la plus haute (du moins je crois que c'est
cela)
Mais comment, à partir de VBA, détecter si une cellule est fusionnée ou
non
et si elle l'est avec quelles autres cellules?

Jean-Luc H
JC Duce
Le #21543561
Bonjour,

Tu peux regarder du côté des propriétés MergeArea et MergeCells pour
retrouver les cellules fusionnées présentes dans la plage de ton tableau.


"JLH974" wrote:

Bonjour à tous
je vous soumets un problème que je n'arrive pas à résoudre, je sais que
votre sagacité EXCELlente sera d'un grand secours :-)
J'ai un tableau composé en grande partie de cellules fusionnées
verticalement et/ou horizontalement.
Je sais que la valeur qui sera inscrite dans la zone fusionnée sera celle de
la cellule la plus à gauche et la plus haute (du moins je crois que c'est
cela)
Mais comment, à partir de VBA, détecter si une cellule est fusionnée ou non
et si elle l'est avec quelles autres cellules?

Jean-Luc H


.

JC Duce
Le #21543601
Pour compléter ma réponse :

Tu nomme toute la plage concernant ton tableau ("plageTest" dans mon
exemple) puis tu execute le code ci-dessous :

------ Debut -----
Public Sub detecteFusion()
For Each cellule In Range("plageTest")
If Range(cellule.Address).MergeCells Then
MsgBox (cellule.Address)
End If
Next cellule
End Sub
------ Fin -----

Tu obtiendra en boite de dialogue les addresses des cellules fusionnées.

"JC Duce" wrote:

Bonjour,

Tu peux regarder du côté des propriétés MergeArea et MergeCells pour
retrouver les cellules fusionnées présentes dans la plage de ton tableau.


"JLH974" wrote:

> Bonjour à tous
> je vous soumets un problème que je n'arrive pas à résoudre, je sais que
> votre sagacité EXCELlente sera d'un grand secours :-)
> J'ai un tableau composé en grande partie de cellules fusionnées
> verticalement et/ou horizontalement.
> Je sais que la valeur qui sera inscrite dans la zone fusionnée sera celle de
> la cellule la plus à gauche et la plus haute (du moins je crois que c'est
> cela)
> Mais comment, à partir de VBA, détecter si une cellule est fusionnée ou non
> et si elle l'est avec quelles autres cellules?
>
> Jean-Luc H
>
>
> .
>
JLH974
Le #21544921
Merci à tous pour vos contributions
Par contre, je rencontre un autre problème : L'adresse de la zone fusionnée
est fournie sous la forme que je déteste le plus au monde genre $A$52:$KL152
Avant que je ne réinvente une moulinette à transformer les coordonnées,
comment sortir plus simplement les 4 numéros de colonne et de ligne début et
fin de la zone?
Pour le début, je pense que les propriétés .Column et .Row de la .MergeArea
nous donnent les coordonnées de début de la zone, mais pour la fin comment
faire?

Jean-Luc




"JC Duce" news:
Pour compléter ma réponse :

Tu nomme toute la plage concernant ton tableau ("plageTest" dans mon
exemple) puis tu execute le code ci-dessous :

------ Debut -----
Public Sub detecteFusion()
For Each cellule In Range("plageTest")
If Range(cellule.Address).MergeCells Then
MsgBox (cellule.Address)
End If
Next cellule
End Sub
------ Fin -----

Tu obtiendra en boite de dialogue les addresses des cellules fusionnées.

"JC Duce" wrote:

Bonjour,

Tu peux regarder du côté des propriétés MergeArea et MergeCells pour
retrouver les cellules fusionnées présentes dans la plage de ton tableau.


"JLH974" wrote:

> Bonjour à tous
> je vous soumets un problème que je n'arrive pas à résoudre, je sais que
> votre sagacité EXCELlente sera d'un grand secours :-)
> J'ai un tableau composé en grande partie de cellules fusionnées
> verticalement et/ou horizontalement.
> Je sais que la valeur qui sera inscrite dans la zone fusionnée sera
> celle de
> la cellule la plus à gauche et la plus haute (du moins je crois que
> c'est
> cela)
> Mais comment, à partir de VBA, détecter si une cellule est fusionnée ou
> non
> et si elle l'est avec quelles autres cellules?
>
> Jean-Luc H
>
>
> .
>
Daniel.C
Le #21545221
Bonjour.
Remplace .Address par .Adress(0,0)
Pas vraiment compris ce que tu voulais d'autre ?
Cordialement.
Daniel

Merci à tous pour vos contributions
Par contre, je rencontre un autre problème : L'adresse de la zone fusionnée
est fournie sous la forme que je déteste le plus au monde genre $A$52:$KL152
Avant que je ne réinvente une moulinette à transformer les coordonnées,
comment sortir plus simplement les 4 numéros de colonne et de ligne début et
fin de la zone?
Pour le début, je pense que les propriétés .Column et .Row de la .MergeArea
nous donnent les coordonnées de début de la zone, mais pour la fin comment
faire?

Jean-Luc




"JC Duce" news:
Pour compléter ma réponse :

Tu nomme toute la plage concernant ton tableau ("plageTest" dans mon
exemple) puis tu execute le code ci-dessous :

------ Debut -----
Public Sub detecteFusion()
For Each cellule In Range("plageTest")
If Range(cellule.Address).MergeCells Then
MsgBox (cellule.Address)
End If
Next cellule
End Sub
------ Fin -----

Tu obtiendra en boite de dialogue les addresses des cellules fusionnées.

"JC Duce" wrote:

Bonjour,

Tu peux regarder du côté des propriétés MergeArea et MergeCells pour
retrouver les cellules fusionnées présentes dans la plage de ton tableau.


"JLH974" wrote:

> Bonjour à tous
> je vous soumets un problème que je n'arrive pas à résoudre, je sais que
> votre sagacité EXCELlente sera d'un grand secours :-)
> J'ai un tableau composé en grande partie de cellules fusionnées
> verticalement et/ou horizontalement.
> Je sais que la valeur qui sera inscrite dans la zone fusionnée sera
celle de
> la cellule la plus à gauche et la plus haute (du moins je crois que
c'est
> cela)
> Mais comment, à partir de VBA, détecter si une cellule est fusionnée ou
non
> et si elle l'est avec quelles autres cellules?
>
> Jean-Luc H
>
>
> .
>
JLH974
Le #21545931
Bonjour Daniel
En fait ce que j'aurais voulu cest avoir les coordonnées de la première
cellule (à gauche et en haut) et de la dernière cellule (à droite et en bas)
de la zone fusionnée
mais pas sous la forme avec des lettres (genre $A$12:&J$25) mais en
récupérant indépendamment les numéros de ligne et de colonne de ces deux
cellules
Pour la cellule de début, je sais, il suffit de prendre .MergeArea.Column et
MergeArea.Row mais pour la cellule de fin (en bas à droite) je ne sais pas
comment faire. Une idée?

Jean-Luc


"Daniel.C" news:%23sk%
Bonjour.
Remplace .Address par .Adress(0,0)
Pas vraiment compris ce que tu voulais d'autre ?
Cordialement.
Daniel

Merci à tous pour vos contributions
Par contre, je rencontre un autre problème : L'adresse de la zone
fusionnée est fournie sous la forme que je déteste le plus au monde genre
$A$52:$KL152
Avant que je ne réinvente une moulinette à transformer les coordonnées,
comment sortir plus simplement les 4 numéros de colonne et de ligne début
et fin de la zone?
Pour le début, je pense que les propriétés .Column et .Row de la
.MergeArea nous donnent les coordonnées de début de la zone, mais pour la
fin comment faire?

Jean-Luc




"JC Duce" news:
Pour compléter ma réponse :

Tu nomme toute la plage concernant ton tableau ("plageTest" dans mon
exemple) puis tu execute le code ci-dessous :

------ Debut -----
Public Sub detecteFusion()
For Each cellule In Range("plageTest")
If Range(cellule.Address).MergeCells Then
MsgBox (cellule.Address)
End If
Next cellule
End Sub
------ Fin -----

Tu obtiendra en boite de dialogue les addresses des cellules fusionnées.

"JC Duce" wrote:

Bonjour,

Tu peux regarder du côté des propriétés MergeArea et MergeCells pour
retrouver les cellules fusionnées présentes dans la plage de ton
tableau.


"JLH974" wrote:

> Bonjour à tous
> je vous soumets un problème que je n'arrive pas à résoudre, je sais
> que
> votre sagacité EXCELlente sera d'un grand secours :-)
> J'ai un tableau composé en grande partie de cellules fusionnées
> verticalement et/ou horizontalement.
> Je sais que la valeur qui sera inscrite dans la zone fusionnée sera
celle de
> la cellule la plus à gauche et la plus haute (du moins je crois que
c'est
> cela)
> Mais comment, à partir de VBA, détecter si une cellule est fusionnée
> ou
non
> et si elle l'est avec quelles autres cellules?
>
> Jean-Luc H
>
>
> .
>








michdenis
Le #21546401
Bonjour,

Un exemple : en supposant que la cellule C8 est fusionnée :

'--------------------------------
Sub test()
Dim Ligne As Long, Colonne As Integer,Adresse as String
With Range("C8").MergeArea
Ligne = .Item(Range("C8").MergeArea.Count).Row
Colonne = .Item(Range("C8").MergeArea.Count).Column
adresse = Cells(Ligne, Colonne).Address
End With
End Sub
'--------------------------------



"JLH974" discussion : 4bc453f4$0$2986$
Bonjour Daniel
En fait ce que j'aurais voulu cest avoir les coordonnées de la première
cellule (à gauche et en haut) et de la dernière cellule (à droite et en bas)
de la zone fusionnée
mais pas sous la forme avec des lettres (genre $A$12:&J$25) mais en
récupérant indépendamment les numéros de ligne et de colonne de ces deux
cellules
Pour la cellule de début, je sais, il suffit de prendre .MergeArea.Column et
MergeArea.Row mais pour la cellule de fin (en bas à droite) je ne sais pas
comment faire. Une idée?

Jean-Luc


"Daniel.C" news:%23sk%
Bonjour.
Remplace .Address par .Adress(0,0)
Pas vraiment compris ce que tu voulais d'autre ?
Cordialement.
Daniel

Merci à tous pour vos contributions
Par contre, je rencontre un autre problème : L'adresse de la zone
fusionnée est fournie sous la forme que je déteste le plus au monde genre
$A$52:$KL152
Avant que je ne réinvente une moulinette à transformer les coordonnées,
comment sortir plus simplement les 4 numéros de colonne et de ligne début
et fin de la zone?
Pour le début, je pense que les propriétés .Column et .Row de la
.MergeArea nous donnent les coordonnées de début de la zone, mais pour la
fin comment faire?

Jean-Luc




"JC Duce" news:
Pour compléter ma réponse :

Tu nomme toute la plage concernant ton tableau ("plageTest" dans mon
exemple) puis tu execute le code ci-dessous :

------ Debut -----
Public Sub detecteFusion()
For Each cellule In Range("plageTest")
If Range(cellule.Address).MergeCells Then
MsgBox (cellule.Address)
End If
Next cellule
End Sub
------ Fin -----

Tu obtiendra en boite de dialogue les addresses des cellules fusionnées.

"JC Duce" wrote:

Bonjour,

Tu peux regarder du côté des propriétés MergeArea et MergeCells pour
retrouver les cellules fusionnées présentes dans la plage de ton
tableau.


"JLH974" wrote:

> Bonjour à tous
> je vous soumets un problème que je n'arrive pas à résoudre, je sais
> que
> votre sagacité EXCELlente sera d'un grand secours :-)
> J'ai un tableau composé en grande partie de cellules fusionnées
> verticalement et/ou horizontalement.
> Je sais que la valeur qui sera inscrite dans la zone fusionnée sera
celle de
> la cellule la plus à gauche et la plus haute (du moins je crois que
c'est
> cela)
> Mais comment, à partir de VBA, détecter si une cellule est fusionnée
> ou
non
> et si elle l'est avec quelles autres cellules?
>
> Jean-Luc H
>
>
> .
>








JC Duce
Le #21546601
Pour la cellule de fin :

Ligne = Rows(c.MergeArea.Rows.Count + c.MergeArea.Row - 1).Row
Colonne = Columns(c.MergeArea.Columns.Count + c.MergeArea.Column - 1).Column



"JLH974" wrote:

Bonjour Daniel
En fait ce que j'aurais voulu cest avoir les coordonnées de la première
cellule (à gauche et en haut) et de la dernière cellule (à droite et en bas)
de la zone fusionnée
mais pas sous la forme avec des lettres (genre $A$12:&J$25) mais en
récupérant indépendamment les numéros de ligne et de colonne de ces deux
cellules
Pour la cellule de début, je sais, il suffit de prendre .MergeArea.Column et
MergeArea.Row mais pour la cellule de fin (en bas à droite) je ne sais pas
comment faire. Une idée?

Jean-Luc


"Daniel.C" news:%23sk%
> Bonjour.
> Remplace .Address par .Adress(0,0)
> Pas vraiment compris ce que tu voulais d'autre ?
> Cordialement.
> Daniel
>
>> Merci à tous pour vos contributions
>> Par contre, je rencontre un autre problème : L'adresse de la zone
>> fusionnée est fournie sous la forme que je déteste le plus au monde genre
>> $A$52:$KL152
>> Avant que je ne réinvente une moulinette à transformer les coordonnées,
>> comment sortir plus simplement les 4 numéros de colonne et de ligne début
>> et fin de la zone?
>> Pour le début, je pense que les propriétés .Column et .Row de la
>> .MergeArea nous donnent les coordonnées de début de la zone, mais pour la
>> fin comment faire?
>>
>> Jean-Luc
>>
>>
>>
>>
>> "JC Duce" >> news:
>>> Pour compléter ma réponse :
>>>
>>> Tu nomme toute la plage concernant ton tableau ("plageTest" dans mon
>>> exemple) puis tu execute le code ci-dessous :
>>>
>>> ------ Debut -----
>>> Public Sub detecteFusion()
>>> For Each cellule In Range("plageTest")
>>> If Range(cellule.Address).MergeCells Then
>>> MsgBox (cellule.Address)
>>> End If
>>> Next cellule
>>> End Sub
>>> ------ Fin -----
>>>
>>> Tu obtiendra en boite de dialogue les addresses des cellules fusionnées.
>>>
>>> "JC Duce" wrote:
>>>
>>>> Bonjour,
>>>>
>>>> Tu peux regarder du côté des propriétés MergeArea et MergeCells pour
>>>> retrouver les cellules fusionnées présentes dans la plage de ton
>>>> tableau.
>>>>
>>>>
>>>> "JLH974" wrote:
>>>>
>>>> > Bonjour à tous
>>>> > je vous soumets un problème que je n'arrive pas à résoudre, je sais
>>>> > que
>>>> > votre sagacité EXCELlente sera d'un grand secours :-)
>>>> > J'ai un tableau composé en grande partie de cellules fusionnées
>>>> > verticalement et/ou horizontalement.
>>>> > Je sais que la valeur qui sera inscrite dans la zone fusionnée sera
>>>> celle de
>>>> > la cellule la plus à gauche et la plus haute (du moins je crois que
>>>> c'est
>>>> > cela)
>>>> > Mais comment, à partir de VBA, détecter si une cellule est fusionnée
>>>> > ou
>>>> non
>>>> > et si elle l'est avec quelles autres cellules?
>>>> >
>>>> > Jean-Luc H
>>>> >
>>>> >
>>>> > .
>>>> >
>
>

.

JLH974
Le #21556681
Merci JC (et merci à tous)
Je viens de redémarrer mon projet grâce à vous

JLH974



"JC Duce" news:
Pour la cellule de fin :

Ligne = Rows(c.MergeArea.Rows.Count + c.MergeArea.Row - 1).Row
Colonne = Columns(c.MergeArea.Columns.Count + c.MergeArea.Column -
1).Column



"JLH974" wrote:

Bonjour Daniel
En fait ce que j'aurais voulu cest avoir les coordonnées de la première
cellule (à gauche et en haut) et de la dernière cellule (à droite et en
bas)
de la zone fusionnée
mais pas sous la forme avec des lettres (genre $A$12:&J$25) mais en
récupérant indépendamment les numéros de ligne et de colonne de ces deux
cellules
Pour la cellule de début, je sais, il suffit de prendre .MergeArea.Column
et
MergeArea.Row mais pour la cellule de fin (en bas à droite) je ne sais
pas
comment faire. Une idée?

Jean-Luc


"Daniel.C" news:%23sk%
> Bonjour.
> Remplace .Address par .Adress(0,0)
> Pas vraiment compris ce que tu voulais d'autre ?
> Cordialement.
> Daniel
>
>> Merci à tous pour vos contributions
>> Par contre, je rencontre un autre problème : L'adresse de la zone
>> fusionnée est fournie sous la forme que je déteste le plus au monde
>> genre
>> $A$52:$KL152
>> Avant que je ne réinvente une moulinette à transformer les
>> coordonnées,
>> comment sortir plus simplement les 4 numéros de colonne et de ligne
>> début
>> et fin de la zone?
>> Pour le début, je pense que les propriétés .Column et .Row de la
>> .MergeArea nous donnent les coordonnées de début de la zone, mais pour
>> la
>> fin comment faire?
>>
>> Jean-Luc
>>
>>
>>
>>
>> "JC Duce" >> de
>> news:
>>> Pour compléter ma réponse :
>>>
>>> Tu nomme toute la plage concernant ton tableau ("plageTest" dans mon
>>> exemple) puis tu execute le code ci-dessous :
>>>
>>> ------ Debut -----
>>> Public Sub detecteFusion()
>>> For Each cellule In Range("plageTest")
>>> If Range(cellule.Address).MergeCells Then
>>> MsgBox (cellule.Address)
>>> End If
>>> Next cellule
>>> End Sub
>>> ------ Fin -----
>>>
>>> Tu obtiendra en boite de dialogue les addresses des cellules
>>> fusionnées.
>>>
>>> "JC Duce" wrote:
>>>
>>>> Bonjour,
>>>>
>>>> Tu peux regarder du côté des propriétés MergeArea et MergeCells pour
>>>> retrouver les cellules fusionnées présentes dans la plage de ton
>>>> tableau.
>>>>
>>>>
>>>> "JLH974" wrote:
>>>>
>>>> > Bonjour à tous
>>>> > je vous soumets un problème que je n'arrive pas à résoudre, je
>>>> > sais
>>>> > que
>>>> > votre sagacité EXCELlente sera d'un grand secours :-)
>>>> > J'ai un tableau composé en grande partie de cellules fusionnées
>>>> > verticalement et/ou horizontalement.
>>>> > Je sais que la valeur qui sera inscrite dans la zone fusionnée
>>>> > sera
>>>> celle de
>>>> > la cellule la plus à gauche et la plus haute (du moins je crois
>>>> > que
>>>> c'est
>>>> > cela)
>>>> > Mais comment, à partir de VBA, détecter si une cellule est
>>>> > fusionnée
>>>> > ou
>>>> non
>>>> > et si elle l'est avec quelles autres cellules?
>>>> >
>>>> > Jean-Luc H
>>>> >
>>>> >
>>>> > .
>>>> >
>
>

.

Publicité
Poster une réponse
Anonyme