Couleurs des formes (shapes) en fonction de

Michel_ja

XLDnaute Occasionnel
Bonjour à tous,
j'ai une macro qui dessine des formes (des rectangles) avec des hauteurs différentes en fonction de volumes inscrits dans des cellules. Ces formes prennent actuellement le nom de "Rectangle & numéro de ligne & numéro de colonne" gràce à la propriété : Selection.Name = "Rectangle" & L& "&" & C. J'aimerai savoir si en changeant le nom des shapes en fonction de l'intitulé d'une autre colonne, par exemple "Rectangle" & "Renault" ou "Rectangle" & "Ford" je pourrai avoir un code qui changerai de couleur l'ensemble des formes contenant le mot "Renault" en rouge et l'ensemble des formes coutenant le mot "Ford" en bleu.
Un truc du type : For each shape in activesheet if ....

Merci d'avance à vous
 
G

Guest

Guest
Re : Couleurs des formes (shapes) en fonction de

Bonjour Michel,

Pas sûr d'avoir tout compris mais avec un truc comme ceci, peut-être:

Code:
Sub Macro1()
 
  Dim sh As Shape
  For Each sh In Feuil1.Shapes()
    If Left(sh.Name, 9) = "Rectangle" Then
        If sh.TextFrame.Characters.Text Like "*Ford*" Then
            sh.Fill.ForeColor vbBlue
        ElseIf sh.TextFrame.Characters.Text Like "*Renault*" Then
            sh.Fill.ForeColor vbRed
        End If
    End If
  Next
 
 
End Sub

Pour plus de précision, ou si tu as du mal à adapter, joins un fichier et précise la question.
 

Michel_ja

XLDnaute Occasionnel
Re : Couleurs des formes (shapes) en fonction de

Bonjour Hasco et merci pour ta réponse, j'ai écrit le code suivant mail is me dit que la propriété n'est pas appropriée !
Sub Couleurs()
Dim Formes As Shape
For Each Formes In ActiveSheet
If Left(Formes, 9) = "Rectangle" Then
If Formes.TextFrame.Characters.Text Like "*Peugeot*" Then
Formes.Fill.ForeColor vbBlue
ElseIf Formes.TextFrame.Characters.Text Like "*Citroen*" Then
Formes.Fill.ForeColor vbRed
End If
End If
End Sub
 

Michel_ja

XLDnaute Occasionnel
Re : Couleurs des formes (shapes) en fonction de

Mmmm... ça ne marche pas !!! il me dit que la propriété Forecolor ne convient pas !! J'ai donc joint le fichier illustrant mon souci ! J'ai une version en anglais de l'ordinateur, Feuil devient Sheet mais je pense que ça n'a aucun impacte ! Merci les gars ! et bon ski à Grenoble :)
 

Pièces jointes

  • Marques _couleurs.zip
    11.7 KB · Affichages: 27
G

Guest

Guest
Re : Couleurs des formes (shapes) en fonction de

bonjour Michel, le forum,
Hello JC:)

Michel, si tu nous donnais le fichier avec la macro, qu'on soit pas obligé de tout refaire. Et nous préciser quelles formes tu veux modifier parce que tes formes nommées "Rectangle....." (en bleu) n'ont pas de texte et ne peuvent contenir Renault ou peugeot par contre tes formes dont le nom commence par "Caractère...." elles oui.

Alors?
 

Michel_ja

XLDnaute Occasionnel
Re : Couleurs des formes (shapes) en fonction de

J'aimerai pouvoir mettre tout le fichier mais son poids ne le permet pas ! mais je j'écris ci-bas un extrait du code, c'est très long et fonctionne sur un système de If en boucle par rapport à un tableau. Hachurage et le nom d'une forme qu'on copie à l'identique et Caractère1 un bloc texte qui vient se positionner au dessus du rectangle !!



Positionx = 1100
Positiony = 1500 'position hauteur dans la page
taillex = Cells(46, 20) 'largeur colonne inscrite dans la cellule
tailley = Cells(47, 20) 'hauteur colonne inscrite
Dim Platform As String
Dim PlatformAv As String
Dim PlatformAp As String
Dim Marque As String
Dim TotalPlatform As Double
Dim TotalPlatformAv As Double
Dim Compteur As Double
Dim Compteur2 As Double


Compteur = -3
Compteur2 = 11


' traitement des variables
For i = 5 To 14 'i = colonnes
For j = 9 To 88 'j = lignes

Marque = Cells(j, 3).Text
Platform = Cells(j, 2).Text
PlatformAv = Cells(j, i).Offset(-1, Compteur).Value
PlatformAp = Cells(j, i).Offset(1, Compteur).Value
TotalPlatformAv = Cells(j, i).Offset(-1, Compteur2).Value


If Cells(j, i).Value <> 0 And Cells(j, i).Value <> "" And Platform = PlatformAv And Platform = PlatformAp Then
ActiveSheet.Shapes("Hachurage").Select
Selection.Copy
ActiveSheet.Paste

TotalPlatform = Cells(j, 16).Value

Selection.ShapeRange.Left = Positionx
Selection.ShapeRange.Top = Positiony - Cells(j, 19).Value - 4
Selection.ShapeRange.Width = 20
Selection.ShapeRange.Height = Cells(j, 19).Value
Selection.Name = "Rectangle" & Marque & i & "&" & j

ActiveSheet.Shapes("Caractère1").Select
Selection.Copy
ActiveSheet.Paste

Selection.ShapeRange.Left = Positionx + 5 / 2
Selection.ShapeRange.Top = Positiony - Cells(j, 19).Value / 2
Selection.ShapeRange.Width = 0#
Selection.ShapeRange.Height = 0#
Selection.ShapeRange(1).TextFrame.AutoSize = msoTrue
Selection.Characters.Text = Cells(j, 4).Text

Positiony = Positiony - Cells(j, 19).Value - 4
 
G

Guest

Guest
Re : Couleurs des formes (shapes) en fonction de

Michel,

Je te souhaite une bonne nuit de repos.

Si tu reviens avec une nouvelle question. Essaie tout de suite de faire un condensé de fichier à joindre, nous irons plus vite à te trouver une réponse.

A bientôt
 

Discussions similaires

Réponses
3
Affichages
252

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz