XL 2016 Sélection d'une grande quantités de plages nommées

AntonG

XLDnaute Nouveau
Bonjour,

Je souhaiterais savoir comment écrire une grande quantité de plage nommée. J'ai trouvé une piste avec l'enregistreur de macro pour passer à la ligne mais cela ne marche guère.

Le but de la manœuvre est de sélectionner ces plages et de leur attribuer une certaine couleur. Ce morceau de code fais partie d'une série d'action dans un "If"

J'ai volontaire retiré la plupart des plages afin de na pas alourdir l'exemple

Union(Range _
"Partie_04_T01_J,Partie_04_T24_J,Partie_04_T25_J" _
), Range( _
"Partie_09_T01_J,Partie_09_T24_J,Partie_09_T25_J" _
), Range( _
"Partie_12_T01_J,Partie_12_T25_J" _
)).Select
With Selection.Interior
.Pattern = xlLightUp
.PatternColorIndex = xlAutomatic
.Color = 13434879
.TintAndShade = 0
.PatternTintAndShade = 0
End With


En vous remerciant par avance pour votre aide !
 

Jacky67

XLDnaute Barbatruc
Bonjour,
Essaye un type de code de ce genre
En adaptant le nom des plages nommées
VB:
With Union([plage1], [plage2], [plage3]).Interior
.Pattern = xlLightUp
.PatternColorIndex = xlAutomatic
.Color = 13434879
.TintAndShade = 0
.PatternTintAndShade = 0
End With
 

Jacky67

XLDnaute Barbatruc
Merci pour la réponse, mais comment faire pour continuer à écrire les plages? Car j'en ai une certaine quantité qui fait que ça va plus loin que ce qui est permis
Re..
Sauf erreur ,"union" supporte 30 plages
S'il devait y avoir plus que 30 plages faire autant d'union qu'il y a de série de 30 plages
With Union([plage1], [plage2],...……. [plage30]).Interior
'-----
'-----
End With

With Union([plage31], [plage32],...……. [plage60]).Interior
'-----
'-----
End With
etc.….
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour AntonG, Jacky67,

A condition que toutes les plages nommées soient dans la même feuille de calcul :
VB:
Sub CouleursPlagesNommées()
Dim nom As Name, plage As Range
For Each nom In ThisWorkbook.Names
    If TypeName(Evaluate(nom.Name)) = "Range" Then Set plage = Union(IIf(plage Is Nothing, Range(nom.Name), plage), Range(nom.Name))
Next
If plage Is Nothing Then Exit Sub
With plage.Interior
    .Pattern = xlLightUp
    .PatternColorIndex = xlAutomatic
    .Color = 13434879
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With
End Sub
A+
 

Statistiques des forums

Discussions
312 104
Messages
2 085 346
Membres
102 868
dernier inscrit
JJV