Colorier une forme avec couleurs RGB comme variables
Résolu/Fermé
ardagh
Messages postés
3
Date d'inscription
vendredi 11 janvier 2019
Statut
Membre
Dernière intervention
16 janvier 2019
-
11 janv. 2019 à 14:04
ardagh Messages postés 3 Date d'inscription vendredi 11 janvier 2019 Statut Membre Dernière intervention 16 janvier 2019 - 16 janv. 2019 à 10:55
ardagh Messages postés 3 Date d'inscription vendredi 11 janvier 2019 Statut Membre Dernière intervention 16 janvier 2019 - 16 janv. 2019 à 10:55
A voir également:
- Récupérer le code couleur rgb d'une cellule excel
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller cellule excel - Guide
- Compte piraté facebook comment le recuperer - Guide
3 réponses
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
11 janv. 2019 à 14:20
11 janv. 2019 à 14:20
Bonjour,
tu trouveras tout ce qui t’intéresse ici avec un classeur à télécharger
https://silkyroad.developpez.com/VBA/ConversionCodesCouleurs/
tu trouveras tout ce qui t’intéresse ici avec un classeur à télécharger
https://silkyroad.developpez.com/VBA/ConversionCodesCouleurs/
ardagh
Messages postés
3
Date d'inscription
vendredi 11 janvier 2019
Statut
Membre
Dernière intervention
16 janvier 2019
14 janv. 2019 à 22:06
14 janv. 2019 à 22:06
Merci Le Pivert pour avoir pris le temps de me répondre.
J'ai néanmoins quelques difficultés liées au fait que je ne maitrise pas tout dans les macros, en particulier avec des variables :
- le fichier à télécharger pour avoir la traduction des couleurs me pose problème car à l'ouverture il me dit la chose suivante "Erreur de compilation - le code contenu dans ce projet doit être mis à jour pour pouvoir être utilisé sur les systèmes 64 bits. Vérifiez et mettez à jour les instructions Declare puis marquez les avec l'attribut PtrSafe". Là je suis un peu sec ...
- j'ai bien repris le 1er code vba que tu m'avais donné ci-dessus (plus simple pour moi que le 2nd), je l'ai adapté pour mettre ma variable, et ça fonctionne. Il reste juste un petit souci, c'est que la couleur attribuée à chaque dpt est celle de la 1° ligne de couleur, ça ne passe pas à la suivante alors que la macro tourne sans problème pourtant. Tout le pays est donc de la même couleur. J'ai du mal à comprendre pourquoi.
Voici le code que j'ai dans ma macro :
Sub testcouleurs()
ligne = 3
Dim r As Long
Dim v As Long
Dim b As Long
r = Worksheets("Départements").Range("G" & ligne).Value
v = Worksheets("Départements").Range("H" & ligne).Value
b = Worksheets("Départements").Range("I" & ligne).Value
For N = 1 To ActiveSheet.Shapes.Count
ActiveSheet.Shapes(N).Select
Sheets("Départements").Cells(ligne, 5) = "Forme libre " & Replace(Selection.Name, "Freeform ", "")
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(r, v, b)
ligne = ligne + 1
Next N
End Sub
Merci pour ton aide car je ne comprends pas ce qui coince.
J'ai néanmoins quelques difficultés liées au fait que je ne maitrise pas tout dans les macros, en particulier avec des variables :
- le fichier à télécharger pour avoir la traduction des couleurs me pose problème car à l'ouverture il me dit la chose suivante "Erreur de compilation - le code contenu dans ce projet doit être mis à jour pour pouvoir être utilisé sur les systèmes 64 bits. Vérifiez et mettez à jour les instructions Declare puis marquez les avec l'attribut PtrSafe". Là je suis un peu sec ...
- j'ai bien repris le 1er code vba que tu m'avais donné ci-dessus (plus simple pour moi que le 2nd), je l'ai adapté pour mettre ma variable, et ça fonctionne. Il reste juste un petit souci, c'est que la couleur attribuée à chaque dpt est celle de la 1° ligne de couleur, ça ne passe pas à la suivante alors que la macro tourne sans problème pourtant. Tout le pays est donc de la même couleur. J'ai du mal à comprendre pourquoi.
Voici le code que j'ai dans ma macro :
Sub testcouleurs()
ligne = 3
Dim r As Long
Dim v As Long
Dim b As Long
r = Worksheets("Départements").Range("G" & ligne).Value
v = Worksheets("Départements").Range("H" & ligne).Value
b = Worksheets("Départements").Range("I" & ligne).Value
For N = 1 To ActiveSheet.Shapes.Count
ActiveSheet.Shapes(N).Select
Sheets("Départements").Cells(ligne, 5) = "Forme libre " & Replace(Selection.Name, "Freeform ", "")
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(r, v, b)
ligne = ligne + 1
Next N
End Sub
Merci pour ton aide car je ne comprends pas ce qui coince.
cs_Le Pivert
Messages postés
7903
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 mars 2024
728
15 janv. 2019 à 07:44
15 janv. 2019 à 07:44
C'est normal ligne reste à 3 pour les variables qui ne sont pas intégrées dans la boucle:
essaie comme cela
@+ Le Pivert
Sub testcouleurs() ligne = 3 Dim r As Long Dim v As Long Dim b As Long For N = 1 To ActiveSheet.Shapes.Count r = Worksheets("Départements").Range("G" & ligne).Value v = Worksheets("Départements").Range("H" & ligne).Value b = Worksheets("Départements").Range("I" & ligne).Value ActiveSheet.Shapes(N).Select Sheets("Départements").Cells(ligne, 5) = "Forme libre " & Replace(Selection.Name, "Freeform ", "") Selection.ShapeRange.Fill.ForeColor.RGB = RGB(r, v, b) ligne = ligne + 1 Next N End Sub
essaie comme cela
@+ Le Pivert
ardagh
Messages postés
3
Date d'inscription
vendredi 11 janvier 2019
Statut
Membre
Dernière intervention
16 janvier 2019
16 janv. 2019 à 10:55
16 janv. 2019 à 10:55
Mais oui bien sûr .... !
C'était évident.
Ca marche parfaitement désormais.
Un grand merci pour ton aide.
Ardagh
C'était évident.
Ca marche parfaitement désormais.
Un grand merci pour ton aide.
Ardagh
Modifié le 11 janv. 2019 à 16:06
Je t'ai indiqué le lien pour les couleurs en Long.
Si tu traduis la valeur RGB en valeur Long cela ne te fera qu'une variable
tu pourras utiliser cette ligne de code:
Ce qui donne:
@+ Le Pivert