Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

OLEFormat.Object.Interior.ColorIndex

20 réponses
Avatar
Jean-Paul V
Bonjour à tous

Dans Feuil1 j’ai les Range lig et col ( nous avons également la remarquable
palette de GeeDee 1596 couleurs )
Dans la Feuil1 j’ai également un groupe de formes nommé groupe
Dans la Feuil2 nommée MosaiqueJPV j’ai un groupe de formes nommé Groupe clair

Pourquoi ma macro se plante sur Groupe clair alors qu’elle fonctionne sur
groupe :

Sub Colorerclair()
Dim ligne As Long, colonne As Long
ligne = [lig]: colonne = [col]

Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.ColorIndex =
ligne 'fontionne !
Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.Pattern
= xlPatternGray50 'fontionne !

Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.PatternColorIndex = colonne 'fontionne !

' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas
' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche pas

Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas mieux
Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche pas
End Sub

Avec Feuil2…. j’ai le message d’erreur ‘’L’indice n’appartient pas à la
sélection’’
Avec MosaiqueJPV…’’Impossible de définir la propriété ColorIndex de la
classe Interior

http://cjoint.com/?ijipSvjUZY


@+ j’espère

--
Jean-Paul V

10 réponses

1 2
Avatar
Philippe.R
Bonjour,
Et si tu supprimes l'espace dans le nom, ou le remplace par un "_" ?
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Jean-Paul V" a écrit dans le message
de news:
Bonjour à tous

Dans Feuil1 j’ai les Range lig et col ( nous avons également la
remarquable
palette de GeeDee 1596 couleurs )
Dans la Feuil1 j’ai également un groupe de formes nommé groupe
Dans la Feuil2 nommée MosaiqueJPV j’ai un groupe de formes nommé Groupe
clair

Pourquoi ma macro se plante sur Groupe clair alors qu’elle fonctionne sur
groupe :

Sub Colorerclair()
Dim ligne As Long, colonne As Long
ligne = [lig]: colonne = [col]

Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.ColorIndex
> ligne 'fontionne !
Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.Pattern
= xlPatternGray50 'fontionne !

Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.PatternColorIndex
= colonne 'fontionne !

' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas
' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche
pas

Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas mieux
Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche
pas
End Sub

Avec Feuil2…. j’ai le message d’erreur ‘’L’indice n’appartient pas à la
sélection’’
Avec MosaiqueJPV…’’Impossible de définir la propriété ColorIndex de la
classe Interior

http://cjoint.com/?ijipSvjUZY


@+ j’espère

--
Jean-Paul V


Avatar
michdenis
Si tu as formé un groupe avec des formes :
tu peux utiliser ceci :
Le nom du groupe de formes est : "Groupe 4"
Feuil1.Shapes("Groupe 4").OLEFormat.Object.Interior.ColorIndex = 5

Si tu as un groupe et que tu veuillles colorer seulement une forme
du groupe, tu peux utiliser ceci :

L'Index 3 représente la forme 3 dans le Groupe désigné.
Feuil1.Shapes("Groupe 4").GroupItems(3).Fill.ForeColor.RGB = RGB(200, 200,
200)

Si tu veux utiliser le nom de la shape dans un groupe, tu peux utiliser ceci
:

Exemple : Pour mettre de la couleur seulement dans la
shape "Rectangle 1" d'un "Groupe" de formes
'--------------------------------------
Sub test1()
Dim Sh As Shape, NbShapes As Integer
Dim A As Integer

Set Sh = Feuil1.Shapes("Groupe 4")
NbShapes = Sh.GroupItems.Count
For A = 1 To NbShapes
With Sh.GroupItems.Item(A)
If .Name = "Rectangle 1" Then
.Fill.ForeColor.RGB = RGB(200, 200, 200)
End If
End With
Next
End Sub
'--------------------------------------





"Jean-Paul V" a écrit dans le message
de news:
Bonjour à tous

Dans Feuil1 j’ai les Range lig et col ( nous avons également la remarquable
palette de GeeDee 1596 couleurs )
Dans la Feuil1 j’ai également un groupe de formes nommé groupe
Dans la Feuil2 nommée MosaiqueJPV j’ai un groupe de formes nommé Groupe
clair

Pourquoi ma macro se plante sur Groupe clair alors qu’elle fonctionne sur
groupe :

Sub Colorerclair()
Dim ligne As Long, colonne As Long
ligne = [lig]: colonne = [col]

Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.ColorIndex ligne 'fontionne !
Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.Pattern
= xlPatternGray50 'fontionne !

Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.PatternColorIndex
= colonne 'fontionne !

' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas
' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche pas

Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas mieux
Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche pas
End Sub

Avec Feuil2…. j’ai le message d’erreur ‘’L’indice n’appartient pas à la
sélection’’
Avec MosaiqueJPV…’’Impossible de définir la propriété ColorIndex de la
classe Interior

http://cjoint.com/?ijipSvjUZY


@+ j’espère

--
Jean-Paul V
Avatar
Modeste
Bonsour® Jean-Paul V avec ferveur ;o))) vous nous disiez :

Dans Feuil1 j’ai les Range lig et col ( nous avons également la
remarquable palette de GeeDee 1596 couleurs )
Pourquoi ma macro se plante sur Groupe clair alors qu’elle fonctionne sur ../..



Comme je l'avais signalé lors de la diffusion initiale de ce classeur
le changement de couleurs, lorsqu'il s'applique aux objets cellules, induit implicitement la mémorisation du format de cellule
la multiplicité des changements dans ce classeur fait que la limite de 4000 formats differents est rapidement atteinte.

Désolé mais, je n'ai pas hélas actuellement le temps de me pencher sur une proc qui ferait réguliérement le ménage parmi les formats superfétatoires ou inutilisés.

l'usage de la palette 1596 n'est peut-etre pas indispensable dans cette jolie adaptation aux mosaiques mauresques !!


--
--
@+
;o)))
Avatar
Jean-Paul V
Merci pour votre réponse.

Je vais la garder précieusement pour d'autres applications.

Mais ça ne répond pas à mon problème, car dans mon fichier les index servent
à mélanger 2 couleurs du tableau de Modeste pour en trouver une troisième et
là il semble que le RGB ne suffit pas à définir une couleur.
Vu la réponse de Modeste qui suit, le problème ne semble pas simple à
rédsoudre.

Et j'avoue que je ne comprends pas tout dans les Macros de GD
--
Jean-Paul V


"michdenis" wrote:

Si tu as formé un groupe avec des formes :
tu peux utiliser ceci :
Le nom du groupe de formes est : "Groupe 4"
Feuil1.Shapes("Groupe 4").OLEFormat.Object.Interior.ColorIndex = 5

Si tu as un groupe et que tu veuillles colorer seulement une forme
du groupe, tu peux utiliser ceci :

L'Index 3 représente la forme 3 dans le Groupe désigné.
Feuil1.Shapes("Groupe 4").GroupItems(3).Fill.ForeColor.RGB = RGB(200, 200,
200)

Si tu veux utiliser le nom de la shape dans un groupe, tu peux utiliser ceci
:

Exemple : Pour mettre de la couleur seulement dans la
shape "Rectangle 1" d'un "Groupe" de formes
'--------------------------------------
Sub test1()
Dim Sh As Shape, NbShapes As Integer
Dim A As Integer

Set Sh = Feuil1.Shapes("Groupe 4")
NbShapes = Sh.GroupItems.Count
For A = 1 To NbShapes
With Sh.GroupItems.Item(A)
If .Name = "Rectangle 1" Then
.Fill.ForeColor.RGB = RGB(200, 200, 200)
End If
End With
Next
End Sub
'--------------------------------------





"Jean-Paul V" a écrit dans le message
de news:
Bonjour à tous

Dans Feuil1 j’ai les Range lig et col ( nous avons également la remarquable
palette de GeeDee 1596 couleurs )
Dans la Feuil1 j’ai également un groupe de formes nommé groupe
Dans la Feuil2 nommée MosaiqueJPV j’ai un groupe de formes nommé Groupe
clair

Pourquoi ma macro se plante sur Groupe clair alors qu’elle fonctionne sur
groupe :

Sub Colorerclair()
Dim ligne As Long, colonne As Long
ligne = [lig]: colonne = [col]

Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.ColorIndex > ligne 'fontionne !
Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.Pattern
= xlPatternGray50 'fontionne !

Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.PatternColorIndex
= colonne 'fontionne !

' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas
' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
' Worksheets("Feuil2").Shapes("Groupe
clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche pas

Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas mieux
Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
Worksheets("MosaiqueJPV").Shapes("Groupe
clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche pas
End Sub

Avec Feuil2…. j’ai le message d’erreur ‘’L’indice n’appartient pas à la
sélection’’
Avec MosaiqueJPV…’’Impossible de définir la propriété ColorIndex de la
classe Interior

http://cjoint.com/?ijipSvjUZY


@+ j’espère

--
Jean-Paul V




Avatar
michdenis
Quelles sont les formes du groupe "clair".

Ce n'est pas toutes les formes qui ont la propriété
"Interior" .... en conséquence si une forme du groupe
n'a pas cette propriété, le code se plante ....et retourne
une erreur de type 5 : "Argument ou appel de procédure incorrect"

Exemple : les lignes , connecteurs ...
Avatar
Jean-Paul V
Bonjour Philippe

J'ai supprimer l'espace, le problème ne se résoud pas, d'après Modeste
GeeDee le problème n'est pas simple à résoudre et comme je ne comprends pas
tout dans sa macro qui fait un tableau de 1596 couleurs... je suis sur un os.

Il semble que la couleur obtenue par l'association de 2 couleurs ne peut pas
se définir seulement par le RGB et donc je suis un peu perdu si je veux
utiliser la palette des 1596 couleurs du tableau de GD.

A défaut de modifier ma macro, y a-t-il un moyen de définir la couleur du
range RES

@+ j'espère encore...
--
Jean-Paul V


"Philippe.R" wrote:

Bonjour,
Et si tu supprimes l'espace dans le nom, ou le remplace par un "_" ?
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Jean-Paul V" a écrit dans le message
de news:
> Bonjour à tous
>
> Dans Feuil1 j’ai les Range lig et col ( nous avons également la
> remarquable
> palette de GeeDee 1596 couleurs )
> Dans la Feuil1 j’ai également un groupe de formes nommé groupe
> Dans la Feuil2 nommée MosaiqueJPV j’ai un groupe de formes nommé Groupe
> clair
>
> Pourquoi ma macro se plante sur Groupe clair alors qu’elle fonctionne sur
> groupe :
>
> Sub Colorerclair()
> Dim ligne As Long, colonne As Long
> ligne = [lig]: colonne = [col]
>
> Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.ColorIndex
> > > ligne 'fontionne !
> Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.Pattern
> = xlPatternGray50 'fontionne !
>
> Worksheets("Feuil1").Shapes("groupe").OLEFormat.Object.Interior.PatternColorIndex
> = colonne 'fontionne !
>
> ' Worksheets("Feuil2").Shapes("Groupe
> clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas
> ' Worksheets("Feuil2").Shapes("Groupe
> clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
> ' Worksheets("Feuil2").Shapes("Groupe
> clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche
> pas
>
> Worksheets("MosaiqueJPV").Shapes("Groupe
> clair").OLEFormat.Object.Interior.ColorIndex = ligne 'ne marche pas mieux
> Worksheets("MosaiqueJPV").Shapes("Groupe
> clair").OLEFormat.Object.Interior.Pattern = xlPatternGray50 'ne marche pas
> Worksheets("MosaiqueJPV").Shapes("Groupe
> clair").OLEFormat.Object.Interior.PatternColorIndex = colonne 'ne marche
> pas
> End Sub
>
> Avec Feuil2…. j’ai le message d’erreur ‘’L’indice n’appartient pas à la
> sélection’’
> Avec MosaiqueJPV…’’Impossible de définir la propriété ColorIndex de la
> classe Interior
>
> http://cjoint.com/?ijipSvjUZY
>
>
> @+ j’espère
>
> --
> Jean-Paul V




Avatar
Jean-Paul V
Le groupe clair ne comprend que des rectangles mais j'ai d'autres groupes qui
ont des triangles et le groupe nommé groupe de la feuil1 a un carré et un
cercle.

fichier : http://cjoint.com/?ijipSvjUZY
--
Jean-Paul V


"michdenis" wrote:

Quelles sont les formes du groupe "clair".

Ce n'est pas toutes les formes qui ont la propriété
"Interior" .... en conséquence si une forme du groupe
n'a pas cette propriété, le code se plante ....et retourne
une erreur de type 5 : "Argument ou appel de procédure incorrect"

Exemple : les lignes , connecteurs ...




Avatar
michdenis
Utilise ceci au lieu de tes 3 lignes de code :

With Worksheets("MosaiqueJPV")
.Shapes.Range("Groupe clair").Fill.ForeColor.SchemeColor = Ligne
.Shapes.Range("Groupe clair").Fill.BackColor.SchemeColor = Colonne
.Shapes.Range("Groupe clair").Fill.TwoColorGradient
msoGradientHorizontal, 1
End With

la propriété "TwoColorGradient" a d'autres constante selon l'effet que tu
désires donner
l'aide d'excel va t'aider à choisir ! Il en va de même pour le "1" de la
même ligne de code.



"Jean-Paul V" a écrit dans le message
de news:
Le groupe clair ne comprend que des rectangles mais j'ai d'autres groupes
qui
ont des triangles et le groupe nommé groupe de la feuil1 a un carré et un
cercle.

fichier : http://cjoint.com/?ijipSvjUZY
--
Jean-Paul V


"michdenis" wrote:

Quelles sont les formes du groupe "clair".

Ce n'est pas toutes les formes qui ont la propriété
"Interior" .... en conséquence si une forme du groupe
n'a pas cette propriété, le code se plante ....et retourne
une erreur de type 5 : "Argument ou appel de procédure incorrect"

Exemple : les lignes , connecteurs ...




Avatar
Modeste
Bonsour® michdenis avec ferveur ;o))) vous nous disiez :

Utilise ceci au lieu de tes 3 lignes de code :
With Worksheets("MosaiqueJPV")
.Shapes.Range("Groupe clair").Fill.ForeColor.SchemeColor = Ligne
.Shapes.Range("Groupe clair").Fill.BackColor.SchemeColor = Colonne



la troisieme instruction pourrait etre :

.Shapes.Range("Groupe clair").Fill.Patterned msoPattern50Percent



End With



c'est en effet la solution la plus rationnelle pour colorer des objets autres que des cellules.
et pour avoir une similitude aux effets couleurs des cellules.

Toutefois la numérotation ColorIndex / SchemeColor n'est pas explicitement identique
N°SchemeColor = N°ColorIndex + 7
mais explique également pourquoi il n'y a pas plus de (56) SchemeColor que de ColorIndex

et que en consequence il est inutile dans ce classeur (Mosaique de JeanPaul V)
d'utiliser le remplissage par les 1540-1596 couleurs virtuelles simultanées.
L'utilisation des palettes modifiées devrait suffir
et évitera d'atteindre trop rapidement le blocage par nombre de formats trop élevés


--
@+
;o)))
Avatar
michdenis
| N°SchemeColor = N°ColorIndex + 7

Ce que tu énonces, Est-ce une vérité de la palice ?
ou d'un gars qui a pris quelques verres de vin en soupant ?
;-))

Parce que si le monsieur désirait avoir la même couleur dans
sa forme que celle affichée dans la cellule A1 par exemple, il
pourrait utiliser ceci :

With Worksheets("MosaiqueJPV")
.Shapes.Range("Groupe clair").Fill.ForeColor.RGB = _
Range("A1").Interior.Color
'.../... le reste du code.
End with





"Modeste" a écrit dans le message de news:
OrdTmul%
Bonsour® michdenis avec ferveur ;o))) vous nous disiez :

Utilise ceci au lieu de tes 3 lignes de code :
With Worksheets("MosaiqueJPV")
.Shapes.Range("Groupe clair").Fill.ForeColor.SchemeColor = Ligne
.Shapes.Range("Groupe clair").Fill.BackColor.SchemeColor = Colonne



la troisieme instruction pourrait etre :

.Shapes.Range("Groupe clair").Fill.Patterned msoPattern50Percent



End With



c'est en effet la solution la plus rationnelle pour colorer des objets
autres que des cellules.
et pour avoir une similitude aux effets couleurs des cellules.

Toutefois la numérotation ColorIndex / SchemeColor n'est pas explicitement
identique
N°SchemeColor = N°ColorIndex + 7
mais explique également pourquoi il n'y a pas plus de (56) SchemeColor que
de ColorIndex

et que en consequence il est inutile dans ce classeur (Mosaique de JeanPaul
V)
d'utiliser le remplissage par les 1540-1596 couleurs virtuelles simultanées.
L'utilisation des palettes modifiées devrait suffir
et évitera d'atteindre trop rapidement le blocage par nombre de formats trop
élevés


--
@+
;o)))
1 2