#1 Wed 02 March 2005 15:30
- Arnaud Colé
- Invité
[ArcView9] - Titre automatique
Bonjour, comme le titre l'indique je cherche a savoir s'il est possible de faire en sorte q'une zone de texte sur la mise en page puisse se modifier toute seul en fonction d'un nom de couche d'un groupe de couche ?
----------------------------------------------------
Arnaud Cole - Geomaticien
#2 Fri 04 March 2005 14:40
- Frederic Prally SETEGUE
- Invité
Re: [ArcView9] - Titre automatique
Bonjour,
Une solution peut etre avec cet exemple.
1 - il faut que tu definisses un nom a la zone de texte. Pour cela,
crees un bouton est colle le script suivant :
=91Private Sub PlaceTexte_Click()
'*** Ce bouton permet d'identifier un element graphic en zone de =
pise en
page selectionne par l'utilisateur
=91*** Creer un UIButton est colle le code suivant a =
l'interieur
Dim pMxDoc As IMxDocument
Dim pLayout As IPageLayout
Dim pGraphics As IGraphicsContainerSelect
Dim pElementProp As IElementProperties
Dim strName As String
Set pMxDoc =3D ThisDocument
Set pLayout =3D pMxDoc.PageLayout
Set pGraphics =3D pLayout
If pGraphics.ElementSelectionCount 1 Then
MsgBox Veuillez selectionner un seul element graphique !
Exit Sub
End If
Set pElementProp =3D pGraphics.DominantElement
strName =3D InputBox( Saisir le nom : , Titre du graphique )
pElementProp.Name =3D strName
=91End Sub
Grace a ce script tu vas pouvoir nommer la zone de texte pour =
laquelle
tu souhaites faire apparaitre un titre automatique.
2 =96 Une fois que tu as nomme ta zone de texte, tu vas pouvoir lui
assigner le nom d'une variable comme par exemple le nom du =
departement
que tu auras selectionne au sein de la couche Departement. Pour =
cela, il
faut inserer dans ton code, la partie suivante :
'***recherche parmi tous les objets texte celui que tu as nomme
Set pGraphics =3D pMxDoc.PageLayout
pGraphics.Reset
Set pElementProp =3D pGraphics.Next
Do Until pElementProp Is Nothing
Select Case pElementProp.Name
Case TitreNumeroCarte
Set pTextElement =3D pElementProp
pTextElement.Text =3D Carte n° &
cboNomCommunes.ListIndex =91Affecte a ce niveau le texte =
ou
la reference a une variable
' Debug.Print pTextElement.Text
Case TitreNomCommune
Set pTextElement =3D pElementProp
pTextElement.Text =3D Etat des lieux du reseau
hydraulique & vbNewLine & _
sur la commune de &
Replace(cboNomCommunes.EditText, '' , ' )
' Debug.Print pTextElement.Text
End Select
Set pElementProp =3D pGraphics.Next
Loop
En esperant que ca puisse d'aider !!
__________________________________
PRALLY Frederic
#3 Fri 04 March 2005 18:28
- Frederic Prally SETEGUE
- Invité
Re: [ArcView9] - Titre automatique
Je viens de m'apercevoir qu'il manque la declaration de qq =
variables
(partie 2).
Les voici :
Dim pGraphics As IGraphicsContainer
Dim pElementProp As IElementProperties2
Dim pTextElement As ITextElement
Si tu veux que je t'envoie un mxd en exemple email moi.
Bonne continuation
__________________________________
PRALLY Frederic