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é ?

#1 Tue 23 March 2004 16:42

Nath3615
Invité

VBA pour selection de couche

De: Nathalie
Bonjour

j'ai recuperer sur l'excellent site : http://www.ensg.ign.fr/Formation/Format … Cours.html le code suivant. => p76 spatial filter

Code:

##################################################
Private Sub UIButtonControl2_Click()
Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
Dim pFrRouteLayer As IFeatureLayer
Set pFrRouteLayer = pMxDoc.FocusMap.Layer(2)
Dim pFeatureSelection As IFeatureSelection
Dim pFBatilayer As IFeatureLayer
Set pFBatilayer = pMxDoc.FocusMap.Layer(4)

Dim pEnumGeom As IEnumGeometry
Set pEnumGeom = New EnumFeatureGeometry
Dim pEnumGeometrybind As IEnumGeometryBind

'QI entre IEnumµGeometryBind et IEnumGeometry

Set pEnumGeometrybind = pEnumGeom
pEnumGeometrybind.BindGeometrySource Nothing, pFBatilayer.FeatureClass

Dim pGeomFactory As IGeometryFactory
Set pGeomFactory = New GeometryEnvironment
Dim pGeom As IGeometry

'Creation d'uens eules geometrie a a partie de l'ensemble de Bati

Set pGeom = pGeomFactory.CreateGeometryFromEnumerator(pEnumGeom)

'Creation du filtre spatial
Dim pSpatialFilter As ISpatialFilter
Set pSpatialFilter = New SpatialFilter

'..sur la geometrie pGeom ...
Set pSpatialFilter.Geometry = pGeom

'..avec le relation Intersectent..
pSpatialFilter.SpatialRel = esriSpatialRelIntersects

' On selectionne les entites troncons

pFeatureSelection.SelectFeatures pSpatialFilter, esriSelectionResultNew, False

pMxDoc.ActiveView.Refresh

End Sub
##################################################

Pourquoi il me revoit sur la ligne pFeatureSelection.SelectFeatures pSpatialFilter, esriSelectionResultNew, False
erreur d'execution 91 , variable objet ou variable de bloc with non definit ??

Je suis pas une fleche en VB, j'ai fait une faute de frappe qq part parck la je n'ai fait que recopier...

Si vous pouvez m'aider.
Merci par avance

Nath

 

#2 Tue 23 March 2004 18:10

Jules Fleury
Invité

Re: VBA pour selection de couche

Bonjour,

il me semble qu'il manque la Query interface entre la Ifeatureselection et la Ifeaturelayer.
ce qui fait que l'objet pfeatureselection n'est pas instancie au moment ou vous appele la methode .selectfeatures

peut etre que si vous inserez la ligne suivante avant de lancer la methode :
'QI
set pfeatureselection=pfrroutelayer

bon codage,

Jules

 

Pied de page des forums

Powered by FluxBB