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 Mon 28 December 2009 15:43

yteb
Participant occasionnel
Date d'inscription: 25 Jun 2007
Messages: 22

VBA creation de points

Bonjour a tous,

Je travaille sur un projet pour lequel je dois automatiser certaines taches sur arcgis. J'ai deja pas mal cherché de mon cote et la je rame un peu...

Je cherche a creer des points a chaque extremite de lignes contenues dans un shape. Ma commande passe sans probleme lorsque j'affiche ma fenetre ligne de commande dans arcgis avec le code suivant :

Code:

workspace C:\...chemin du projet
Intersect_analysis sections carrefours ALL 0 POINT

Ma couche de points 'carrefours' est créée à partir de ma couche 'sections' et est bien enregistrée dans le bon repertoire. Par contre je souhaite lancer cette commande automatiquement à l'ouverture du .mxd. J'ai commencé a creuser du coté des possibilités en vba avec une fonction equivalente qui se lancerait a l'ouverture du .mxd mais je n'arrive pas a trouver l'equivalent de cette commande en vba. Je debute dans ce domaine donc je suis ouvert a toute proposition si cette methode ne vous parait pas judicieuse !

Merci d'avance



----------------------------------

Pas d'idée ?

Dernière modification par yteb (Tue 29 December 2009 09:39)

Hors ligne

 

#2 Tue 29 December 2009 09:33

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: VBA creation de points

Bonjour ,

Une début de réponse...

pour lancer automatiquement un script vba à l'ouverture du mxd, il faut créer une fonction
comme ci-dessous :

Code:

Private Function MxDocument_OpenDocument() As Boolean

MsgBox "Les commandes de ce bloc seront exécutées lors de l'ouverture du fichier .mxd"

End Function

Autrement dit quand vous aurez la commande équivalente pour créer vos points vous n'aurez qu'à l'insérer dans cette fonction.

Hors ligne

 

#3 Tue 29 December 2009 10:16

yteb
Participant occasionnel
Date d'inscription: 25 Jun 2007
Messages: 22

Re: VBA creation de points

Merci pour votre message,

La commande fonctionne bien. Par contre je suis toujours bloqué pour ma commande. Je profite de ce message pour préciser que le code que j'ai fourni ne fonctionne pas totalement puisqu'il créé des doublons (un nœud est recréé deux fois car chaque segment est traité indépendamment).

Je continue à creuser de mon côté et je reste ouvert à toute proposition...

Merci d'avance

Hors ligne

 

#4 Tue 29 December 2009 11:52

Pierre Dolez
Participant assidu
Lieu: Proville
Date d'inscription: 14 Aug 2008
Messages: 519
Site web

Re: VBA creation de points

Bonjour,

Il me semble que là vous abordez des problèmes qui ne peuvent être résolus que par la topologie.
Plus de détails en privé, si vous voulez.

Cordialement.

Hors ligne

 

#5 Wed 06 January 2010 17:35

yteb
Participant occasionnel
Date d'inscription: 25 Jun 2007
Messages: 22

Re: VBA creation de points

Dsolé pour le retard du suivi mais je buchais sur autre chose. Pour résumer, j'ai laissé tomber cette voie et j'ai contourné le problème en utilisant les modèles Arcgis et en les appelant à l'ouverture du document. Solution limitée en possibilité mais qui évite de la programmation pour les perdus comme moi en la matière !

Pour info voici le code vba que j'utilise pour lancer un modèle :

Code:

 
Private Function MxDocument_OpenDocument() As Boolean
 
MsgBox "Les calculs vont se lancer automatiquement à l'ouverture du document. Le programme se fermera losque le travail sera effectué. Merci de patienter..."
 
Dim PGP As Object
 Set PGP = CreateObject("esriGeoprocessing.GPDispatch.1")
 On Error GoTo EH
 PGP.Intersections 'ici on lance le modele arcgis
 
MsgBox "Les calculs ont été effectués correctement. L'application va se fermer et vous aurez à nouveau accès à a la base PREDIT pour continuer la construction de votre réseau..."
 
    Dim pApp As IApplication
    Set pApp = Application
 
    ' On sauvegarde le document
    pApp.SaveDocument
    ' Et on ferme
    pApp.Shutdown
 
Exit Function
 
EH:
MsgBox PGP.GetMessages("Un problème est survenu"), vbOKOnly, "Erreur"
 
End Function

Si ca peut aider quelqu'un un jour...

Merci et à bientot

Hors ligne

 

Pied de page des forums

Powered by FluxBB