#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