#1 Wed 14 September 2011 15:59
- tnicolas
- Participant actif
- Date d'inscription: 18 Apr 2007
- Messages: 64
[ArcGis 9.1] changer l'image d'un outils
Bonjour,
J'ai créé une barre d'outils personnalisée et y ai rajouté des UIControls. J'aimerais pouvoir changer l'image de l'un d'entre eux avec un code VBA.
En faisant des recherches j'ai trouvé ça : http://resources.esri.com/help/9.3/ArcG … FaceID.htm
Code:
Sub ChangeIcon() Dim pBar As ICommandBar Dim pItem As ICommandItem Set pBar = CommandBars.Find(ArcID.Standard_Toolbar) Set pItem = pBar.Find(ArcID.Help_ContextHelp) pItem.FaceID = UserForm1.Image1.Picture End Sub
J'ai créé un formulaire bidon avec 2 images donc les "Picture" sont des bitmap.
J'ai récupéré (enfin je pense) l'UID de mon outils avec un affichage de "me.id" au click de cet outils et j'ai donc changer le code précédent en ceci :
Code:
Dim pUID As New UID Dim pItem As ICommandItem pUID.Value = "{FD5DA16D-B9D0-411A-8140-8E4C778A4697}" Set pItem = Application.document.CommandBars.Find(pUID) pItem.FaceID = f_image.Image1.Picture
quand je lance la macro pour changer l'image il me donne une "erreur 91 variable objet ou du bloc with non définie" en surlignant la dernière ligne.
Les variables sont déclarées, le formulaire f_image existe, le control Image1 aussi et la propriété Picture est remplie (image bitmap). D'où vient le problème ?
Cordialement,
Nicolas
Hors ligne
#2 Thu 15 September 2011 10:30
- tnicolas
- Participant actif
- Date d'inscription: 18 Apr 2007
- Messages: 64
Re: [ArcGis 9.1] changer l'image d'un outils
Finalement en faisant le "me.id" j'ai du récupérer l'id du document et celui de l'outils ... reste à savoir comment on récupère l'id d'un outils ?
Hors ligne
#3 Thu 15 September 2011 10:47
- tnicolas
- Participant actif
- Date d'inscription: 18 Apr 2007
- Messages: 64
Re: [ArcGis 9.1] changer l'image d'un outils
Bon ok, pourquoi faire simple quand on peut faire compliqué.
Code:
Dim pItem As ICommandItem Set pItem = Application.document.CommandBars.Find("nomduprojet.nomdubouton") pItem.FaceID = f_image.Image2.Picture
Hors ligne