Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !
Bonsoir Dranreb,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.
Je suis largué ... je vais prendre un autre chemin !, à force de tenter un millier de choses, je finis par ne plus comprendre ce que je fais sur ce fichier.Les ListObject de votre Data ne s'appellent pas "TdBornes" et "TdValeurs" mais "Tableau2" et "Tableau1".
Vous pouvez renommer ces tableaux via le menu Création de tableau.
Vous utilisez de bien curieuses apostrophes comme délimiteurs de constantes String !
Pourquoi y a-t-il 4 cartes de France qui s'appellent toutes "_00" ?
Et pourquoi la macro est affectée aux sous formes qui les composent ?
Sub Test()
Dim ShpCarte As Shape, ShpDpt As Shape
Set ShpCarte = Data.Shapes("CartePAC4")
Set ShpDpt = ShpCarte.GroupItems("FR-90")
ShpDpt.Select
End Sub
Le FR-90 a dû m'échapper quand j'ai renommé les dept en _01, _02...etc, le hasard fait bien les choses...lolOui, ben il ne faut pas qu'elles portent toutes le même nom, ici "_00" sinon on ne va pas savoir comment en atteindre une en particulier !
Par ailleurs, Je prend au hasard le département où j'habite, c'est le seul qui s'appelle "FR-90" au lieu de "_90" selon la logique des autres !
Ayant renommé "CartePAC4" la première "_00", j'ai pu le sélectionner avec cette petite macro de test :
VB:Sub Test() Dim ShpCarte As Shape, ShpDpt As Shape Set ShpCarte = Data.Shapes("CartePAC4") Set ShpDpt = ShpCarte.GroupItems("FR-90") ShpDpt.Select End Sub
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
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?