Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 18 May 2006 09:45

Pascal Ogy
Juste Inscrit !
Date d'inscription: 1 May 2006
Messages: 2

Comment exécuter code VBA dans ArcGis 9

J'ai essayé  en vain d'exécuter le code VBA ci après dans ArcGIS. Ce code est supposé tracé deux segments de ligne. Quand je lance la fonction rien ne se passe.  Merci de m'aider.
Pascal Ogy
Dim pPoint1 As IPoint, pPoint2 As IPointDim pPoint3 As IPoint, pPoint4 As IPointSet pPoint1 = New PointpPoint1.PutCoords 10, 10Set pPoint2 = New PointpPoint2.PutCoords 20, 30Set pPoint3 = New PointpPoint3.PutCoords 40, 50Set pPoint4 = New PointpPoint4.PutCoords 30, 60Dim pGeometryColl As IGeometryCollectionSet pGeometryColl = New PolylineDim pSegmentColl As ISegmentCollectionSet pSegmentColl = New PathDim pLine As ILineSet pLine = New LinepLine.PutCoords pPoint1, pPoint2pSegmentColl.AddSegment pLinepGeometryColl.AddGeometry pSegmentCollSet pSegmentColl = New PathSet pLine = New LinepLine.PutCoords pPoint3, pPoint4pSegmentColl.AddSegment pLinepGeometryColl.AddGeometry pSegmentColl

Hors ligne

 

#2 Thu 18 May 2006 15:40

JulienR
Juste Inscrit !
Lieu: Bègles
Date d'inscription: 17 May 2006
Messages: 6
Site web

Re: Comment exécuter code VBA dans ArcGis 9

Bonjour,

Voila un code qui fonctionne pour la création de points, vous pouvez vous en inspirer.
Je pense que vous avez créer les points mais qu'il faut les associer à une classe d'entité et les enregister... ceq qui se fait avec les featureclass, featurelayer etc ...

Code:

Attribute VB_Name = "creapoints"
'*************************************************************************
'* Cette procédure créé les points correspondant au coordonnées X et Y   *
'* qui lui sont passé. Ces points sont créés dans la première couche     *
'* du bloc de données                                                    *
'*************************************************************************

Public Sub CreatePoint(x As Double, y As Double)

'On ne créé pas les points non renseignés dans la base de données
If x = 0 And y = 0 Then
    Exit Sub
End If

Dim pMap As IMap
Dim pMxdoc As IMxDocument
Set pMxdoc = ThisDocument
Set pMap = pMxdoc.FocusMap

'Réccupère la première couche du bloc de données
Dim pFeatLyr As IGeoFeatureLayer
Set pFeatLyr = pMap.layer(0)

'Création des points
Dim tmpPoint As IPoint
Set tmpPoint = New Point
tmpPoint.PutCoords x, y

'Réccupère la classe d'entité (FeatureClass)
Dim pFclass As IFeatureClass
Set pFclass = pFeatLyr.FeatureClass

'Création de la nouvelle entité point
Dim pfeat As IFeature
Set pfeat = pFclass.CreateFeature
Set pfeat.Shape = tmpPoint

'Enregistrement du point dans la classe d'entité
pfeat.Store

'Destruction des références affectées aux variables
Set pfeat = Nothing
Set pFclass = Nothing
Set tmpPoint = Nothing
Set pFeatLyr = Nothing
Set pMap = Nothing
Set pMxdoc = Nothing

End Sub

en espérant que cela vous aide

cordialement

Julien R.

Hors ligne

 

Pied de page des forums

Powered by FluxBB