Bonsoir.
Ce que je vois d'abord c'est que vous tentez d'utiliser un nom de feuille Excel "Data" en tant que nom d'objet Worksheet qui assumerait pour VBA la représentation de cette feuille. Or celle ci n'est pas un objet VBA mais une entité de l'application hôte, laquelle vous en a bien installé un, mais qui s'appelle Feuil4, pas Data.
Notez que dans la 1ère ligne de la fenêtre de propriété de cet objet vous pouvez le renommer Data si vous voulez. Dans VBE pas dans Excel. Personnellement je le renommerais WshData parce que je préfixe toujours d'un trigramme les noms d'objets VBA.
Bonsoir Dranreb,
Merci pour vos précieux conseils, j'ai compris mon erreur ! mais j'ai toujours une erreur d'exécution sur la ligne 'Set Plage = Data.ListObjects(“TdBornes”).DataBodyRange.Columns(1)
J'essaie d'exploiter le code VBA trouvé sur un site
Sub Coloration()
Dim Cel As Range, Rng As Range, Plage As Range
Dim Shp As Shape
Set Plage = Feuil1.ListObjects(“TbBornes”).DataBodyRange.Columns(1)
‘ — Boucle sur les département
For Each Cel In Feuil1.ListObjects(“TbValeurs”).DataBodyRange.Columns(1).Cells
‘ — Image
Set Shp = Feuil1.Shapes(“_” & Format(Cel.Value, “00”))
‘ –- Couleur par défaut
Shp.Fill.ForeColor.RGB = Plage.Cells(Plage.Cells.Count).Offset(0, 1).Interior.Color
‘ — Recherche de la valeur dans la table
For Each Rng In Plage.Cells
If Cel.Offset(0, 2).Value <= Rng.Value Then
‘ — Mise en couleur
Shp.Fill.ForeColor.RGB = Rng.Offset(0, 1).Interior.Color
Exit For
End If
Next Rng
Next Cel
End Sub
J'ai modifié Feuil1 en renommant Data dans la fenêtre propriété.
Plusieurs questions m'interceptent :
- Mes tables TdValeurs et TdBornes sont elles biens choisies ?
- J'ai un doute sur ma carte de France, il parle
Pour que le code puisse fonctionner correctement, il faut faire créer une clef de correspondance entre le tableau et les images. Il faut donc nommer chaque image (« _00 »). Je dois bien créer chaque image de mes département par un nom _01, _02, _03...etc..
Pas simple mon histoire ...
Merci