#1 Sat 26 November 2005 17:51
Cocher Décocher des couches
Savez vous s'il est possible de cocher-décocher des couches par le biais
d'une macro par exemple ? comment fait-on ? je n'ai jamais fait de macro
dans arcmap, ni ailleurs ...
Dernière modification par AlineC (Mon 27 November 2017 15:00)
Hors ligne
#2 Mon 28 November 2005 09:24
- Frédéric Prally
- Participant occasionnel
- Date d'inscription: 25 Oct 2005
- Messages: 16
Re: Cocher Décocher des couches
Bonjour Aline,
Voici un exemple de code qui permet de décocher toutes les couches présentes dans la TOC. En espérant que cela puisse t'aider.
Code:
Public Sub DesactiveCouche() '***Description : Désactive la visibilité de toutes les couches présente dans la TOC '*** Cela revient cocher / décocher les couches de la TOC. Dim pMxdoc As IMxDocument Dim pMap As IMap Dim pEnumLayer As IEnumLayer Dim pLayer As ILayer Set pMxdoc = ThisDocument Set pMap = pMxdoc.FocusMap Set pEnumLayer = pMap.Layers Set pLayer = pEnumLayer.Next Do Until pLayer Is Nothing If pLayer.Visible = True Then pLayer.Visible = False End If Set pLayer = pEnumLayer.Next Loop 'Rafraichit la TOC pMxdoc.CurrentContentsView.Refresh pLayer End Sub
Hors ligne
#3 Mon 28 November 2005 10:56
- crevette
- Participant actif
- Lieu: Noisy Le grand
- Date d'inscription: 13 Sep 2005
- Messages: 50
Re: Cocher Décocher des couches
voila un exemple de code bateau :
Option Explicit
Dim theDoc As IMxDocument
Dim theLayer As ILayer
Dim pMxDoc As IMxDocument ' Déclaration du document
Dim pMxApp As IMxApplication ' Déclaration de l'application
Public pAccesLayer As IFeatureLayer ' Couche des accès
Private Sub UIButtonControl1_Click()
Set pMxDoc = ThisDocument
Set theDoc = ThisDocument
Set ThisDocument.pAccesLayer = pMxDoc.FocusMap.Layer(0)
Set theLayer = theDoc.FocusMap.Layer(0)
theLayer.Visible = False
theDoc.UpdateContents
theDoc.ActiveView.Refresh
End Sub
Private Sub UIButtonControl2_Click()
Set pMxDoc = ThisDocument
Set theDoc = ThisDocument
Set ThisDocument.pAccesLayer = pMxDoc.FocusMap.Layer(0)
Set theLayer = theDoc.FocusMap.Layer(0)
theLayer.Visible = True
theDoc.UpdateContents
theDoc.ActiveView.Refresh
End Sub
pour l'utiliser il suffit de créer 2 boutons dans le document, mais tu peux le simplifier en en créant qu'un et en utilisant un test.
La il n'est valable que pour une seule couche, la premiere située dans la table des matières.
l'argument important pour cocher est décocher est 'visible'.
Hors ligne
#4 Fri 02 December 2005 10:29
- nicolas valls
- Participant assidu
- Date d'inscription: 28 Oct 2005
- Messages: 154
Re: Cocher Décocher des couches
Juste une petite remarque :
si vous maintenez enfoncer la touche ctrl et que vous cliquez sur une case a cocher (rendre visible ou pas la couche) ca rend visible/invisible toutes les couches du bloc de donnnées
Hors ligne