Référence complète d'une cellule fusionnée

papajer

XLDnaute Nouveau
Bonjour à tous,

J'aimerai savoir s'il existe une possibilité pour avoir la référence complète d'une cellule fusionnée lorsqu'on crée un nom pour une plage de cellules.
Par exemple :

Je fusionne les cellules A1 et B1 puis je fusionne les cellules A3 et B3.
Je souhaite donner un nom à la plage formée de ces deux cellules fusionnées
Lorsque j'utilise le gestionnaire de nom d'excel et que je sélectionne mes cellules, il écrit automatiquement dans la zone de référence :
=Feuil1!$A$1;Feuil1!$A$3
J'aimerais qu'il m'écrive :
=Feuil1!$A$1:$B$1;Feuil1!$A$3:$B$3 ou encore =Feuil1!A1:B1;Feuil1!A3:B3

Est-ce possible ?

Sinon, est-ce possible de créer une macro qui m'écrirait ce texte dans une cellule de mon choix après sélection de la plage à nommer ?

Merci d'avance.
 

pierrejean

XLDnaute Barbatruc
Re : Référence complète d'une cellule fusionnée

Bonjour papajer

Il me parait plus simple en partant de cellules non fusionnées de:
Sélectionner A1:B1
Avec appui sur Ctrl
Sélectionner A3:B3
Nommer
Fusionner ensuite A1 et B1 puis A3 et B3
 

papajer

XLDnaute Nouveau
Re : Référence complète d'une cellule fusionnée

Bon, cela fonctionne effectivement.
Cependant, sans vouloir être trop exigeant, existe-t-il une macro qui ferait ce que je dis car il faudrait que je défusionne puis refusionne une centaine de cellule... pour chacune de mes 20 feuilles...

Merci en tout cas pour la procédure qui me fait gagner un peu de temps.
 

papajer

XLDnaute Nouveau
Re : Référence complète d'une cellule fusionnée

Tout simplement "Bravo".

Je vais maintenant passer une heure dans l'aide pour comprendre chaque terme de votre code, mais c'est comme ça qu'on progresse.

J'ai donc deux techniques à ma disposition que je peux choisir en fonction de la situation.

Un grand MERCI à vous pour la rapidité de vos réponses.
 

papajer

XLDnaute Nouveau
Re : Référence complète d'une cellule fusionnée

Re
j'ai compris le code que vous m'avez proposé. Il fonctionne très bien, mais me renvoie seulement 2 plages de cellules.

J'ai essayé de mettre un "For" dans la valeur de Z mais visiblement, Excel n'en veut pas.

Il faudrait faire un quelque chose comme ça :

Code:
x = Split(Selection.Address, ",")
Z =  For i = 0 To [taille de x] 
        ActiveSheet.Name & "!" & x(i) & ";" &
Next i
Range("D1") = Z
Mais il manque des trucs :)
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Référence complète d'une cellule fusionnée

Bonjour papajer, PierreJean:)

pas sûr d'avoir tout compris, mais regarde peut être ceci :
Code:
Dim c As Range
For Each c In Range("A1").MergeArea
    MsgBox c.Address
Next c
bon après midi
@+
 

papajer

XLDnaute Nouveau
Re : Référence complète d'une cellule fusionnée

Bonjour Pierrot,

En fait je cherche à avoir dans une cellule la référence COMPLÈTE, sous forme de texte, d'une plage de cellules fusionnées.
Par exemple A1:B1 au lieu de A1 tout simplement.

Le code de PierreJean est parfait si ce n'est qu'il ne me donne le texte que pour les 2 premières valeurs de son "x" alors que, si possible, il faudrait me concaténer TOUTES les valeurs avec les "Feuill1!" et les ";" bien intercalés.

Je galère un peu car le nombre de valeurs dans x n'est pas toujours le même selon mes feuilles.

J'ai trouvé comment obtenir ce nombre de valeur : UBound(x) - LBound(x) + 1

Maintenant, je n'ai plus qu'à faire un "for" mais je n'y arrive pas...
 

pierrejean

XLDnaute Barbatruc
Re : Référence complète d'une cellule fusionnée

Re

Salut Pierrot

au lieu de
x = Split(Selection.Address, ",")
Z = For i = 0 To ubound(x)
ActiveSheet.Name & "!" & x(i) & ";" &
Next i
Range("D1") = Z

Code:
x = Split(Selection.Address, ",")
For i = 0 To ubound(x)
       z= z &  ActiveSheet.Name & "!" & x(i) & ";" 
Next i
Range("D1") = left(Z,len(z)-1)
 
Dernière édition:

papajer

XLDnaute Nouveau
Re : Référence complète d'une cellule fusionnée

Je suis arrivé à faire à peu près la même chose. (J'ai galéré pour trouver ubound)
En fait, il fallait mettre le Z DANS le For et faire une auto référence : z = lui-même + un truc

Par contre, je n'avais pas vu le point virgule à la fin et je comprends maintenant le left(Z,len(z-1)-1)

J'aurais appris plusieurs choses aujourd'hui : Split, Address, Ubound et Len

Merci à vous et à l'ensemble du forum !
 

job75

XLDnaute Barbatruc
Re : Référence complète d'une cellule fusionnée

Bonjour à tous,

Pour modifier la définition des noms des zones fusionnées :

Code:
Sub NomZoneFusionnee()
Dim nom As Name
For Each nom In ThisWorkbook.Names
  If TypeName(Evaluate(nom.Name)) = "Range" _
    Then Evaluate(nom.Name)(1).MergeArea.Name = nom.Name
Next
End Sub
Un bémol cependant car une formule nommée comme :

Code:
=DECALER(Feuil2!$D$1;;;3)
sera bien sûr transformée en :

Code:
=Feuil2!$D$1:$D$3
A+
 

job75

XLDnaute Barbatruc
Re : Référence complète d'une cellule fusionnée

Re,

Pour éviter le bémol de la macro précédente on peut utiliser :

Code:
Sub NomZoneFusionnee()
Dim nom As Name
For Each nom In ThisWorkbook.Names
  If TypeName(Evaluate(nom.Name)) = "Range" And _
    InStr(nom.RefersTo, "OFFSET") + InStr(nom.RefersTo, "INDIRECT") = 0 _
      Then Evaluate(nom.Name)(1).MergeArea.Name = nom.Name
Next
End Sub
A+
 

Discussions similaires

Réponses
10
Affichages
277

Statistiques des forums

Discussions
312 685
Messages
2 090 947
Membres
104 705
dernier inscrit
Mike72