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 11 November 2010 17:00

anescadillac
Participant occasionnel
Date d'inscription: 23 Mar 2010
Messages: 48

creation de 2 blocs de donnée VBA ArcObject

je debute en programmation. Avec ce code, j'essaie de creer 2 blocs de données afin d'y charger des Layers.

Ca bloque au premier pMap1.AddLayer pGxLayer.Layer

Code:

Global pMxdoc As IMxDocument
Global pMaps As IMaps

Sub programme_principal()

'instanciation du document
Set pMxdoc = ThisDocument
Set pMaps = pMxdoc.Maps

Dim pMap1 As IMap
Dim pMap2 As IMap

Set pMap1 = pMaps.Create   'Premier Bloc de données
Set pMap2 = pMaps.Create 'Deuxieme Bloc de données

MsgBox pMaps.Count

pMap1.Name = "BlocPrincipal"    'Nomination Bloc 1
pMap2.Name = "BlocConsole"  'Nomination Bloc 2

'MsgBox pMap1.Name
'MsgBox pMap2.Name

Dim PathGdb As String
PathGdb = "C:\Users\xxx\Desktop\Carte_Automat\xxx.gdb\"

'definir les chemins vers les données du 1er Bloc
Dim PathReseau As String
Dim PathNodes As String
Dim PathCTer As String

'definir les chemins vers les données du 2eme Bloc
Dim PathCor As String
Dim PathCorIntersect As String

'instanciation des chemins vers les Layers Bloc 1
PathReseau = PathGdb & "reseau\reseau"
PathNodes = PathGdb & "reseau\PontsReseau"
PathCTer = PathGdb & "reseau\CT_Ter"

'instanciation des chemins vers les Layers Bloc 1
PathCor = PathGdb & "reseau\Marchal"


Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile

Set pGxLayer = New GxLayer
Set pGxFile = pGxLayer

pGxFile.Path = PathReseau
'pMap1.AddLayer pGxLayer.Layer

pGxFile.Path = PathNodes
'pMap1.AddLayer pGxLayer.Layer

pGxFile.Path = PathCTer
'pMap1.AddLayer pGxLayer.Layer

pGxFile.Path = PathCor
'pMap2.AddLayer pGxLayer.Layer

End Sub

Hors ligne

 

#2 Thu 11 November 2010 19:46

anescadillac
Participant occasionnel
Date d'inscription: 23 Mar 2010
Messages: 48

Re: creation de 2 blocs de donnée VBA ArcObject

Ok, apres correction de la premiere partie du code, j'arrive à créer mes deux blocs de données et à les renommer. Ce que je souhaite maintenant, c'est de charger mes Layers depuis une GDB dans les deux blocs de données

Code dorrigé :


Code:

Global pMxdoc As IMxDocument
Global pMaps As IMaps

Sub programme_principal()

'instanciation de l'environnement
Set pMxdoc = ThisDocument
Set pMaps = pMxdoc.Maps

Dim pMap1 As IMap
Dim pMap2 As IMap

Set pMap1 = pMaps.Create  'Premier Bloc de données
Set pMap2 = pMaps.Create 'Deuxieme Bloc de données

pMaps.Reset 'Vider la fenetre de navogation

pMap1.Name = "Bloc Principal"
pMap2.Name = "Bloc Console"

pMaps.Add pMap1 'ajout du Bloc 1
pMaps.Add pMap2 'ajout du Bloc 2

pMxdoc.ContentsView(0).Refresh (0)

Dim PathGdb As String
PathGdb = "C:\Users\xxx\Desktop\Carte_Automat\xxx.gdb\"

'definir les chemins vers les données du 1er Bloc
Dim PathReseau As String
Dim PathNodes As String
Dim PathCTer As String

'definir les chemins vers les données du 2eme Bloc
Dim PathCor As String
Dim PathCorIntersect As String

'instanciation des chemins vers les Layers Bloc 1
PathReseau = PathGdb & "reseau\reseau"
PathNodes = PathGdb & "reseau\PontsReseau"
PathCTer = PathGdb & "reseau\CT_Ter"

'instanciation des chemins vers les Layers Bloc 1
PathCor = PathGdb & "reseau\Marchal"


Dim pGxLayer As IGxLayer
Dim pGxFile As IGxFile

Set pGxLayer = New GxLayer
Set pGxFile = pGxLayer

pGxFile.Path = PathReseau
'pMap1.AddLayer pGxLayer.Layer

pGxFile.Path = PathNodes
'pMap1.AddLayer pGxLayer.Layer

pGxFile.Path = PathCTer
'pMap1.AddLayer pGxLayer.Layer

pGxFile.Path = PathCor
'pMap2.AddLayer pGxLayer.Layer

end sub

Hors ligne

 

Pied de page des forums

Powered by FluxBB