#1 Wed 24 March 2004 13:44
- Robert LeBrun
- Invité
Message VBA dans ArCMap
Bonjour a toutes et a tous,
J'utilise ArcMap 8.3 sur WinXP version familiale et losrque je desire ajouter un CommonDialog dans mon USERFORM, j'obtiens le message suivant :
The control could not be created because it is not properly licensed
Avez-vous deja rencontre ce probleme et si oui, quelle solution a appliquer ?
Merci a l'avance de donner suite a mon interrogation!
GeoBob
Robert LeBrun
Les Productions du Corbeau
#2 Thu 25 March 2004 03:01
- RWB EE SA, Dept GIS
- Invité
Re: Message VBA dans ArCMap
Bonsoir,
Nous avons deja egalement rencontre ce probleme, mais il y a de nombreuses annees notamment lorsque l’on developpait en VBA sous AutoCad.
Cela signifie simplement que vous n’avez pas la licence pour utiliser ce controle.
Pour nous, ceci c’est resolu par l’acquisition de VB6 pure et dure.
Par contre, avant cette solution, nous avions mis au point une fonction qui permet de se passer de ce controle.
La voici :
1) Dans votre formulaire, creer un bouton qui appelle la fonction et pour ce faire lier ce code a l’evenement « On Click » de votre bouton
Code:
Private Sub cmdParcourirFichier_Click() Dim txtSelectFile As String txtSelectFile = funOpenFileName( Choix du fichier de donnees a utiliser ) If txtSelectFile 0 Then txtNomFichier = txtSelectFile Else txtNomFichier = "" End If txtSelectFile = Empty End Sub
2) Creer par exemple un nouveau module dans votre projet VBA du nom que vous voulez et placer-ci ce code (que vous pourrez ainsi facilement reutiliser dans d’autre developpement
Code:
Option Explicit 'impose la declaration des variables ' 'declare le fontion 'API' GetOpenFileName 'declaration des constantes ' Private Declare Function GetOpenFileName Lib comdlg32.dll Alias GetOpenFileNameA (pOpenfilename As OPENFILENAME) As Long Private Type OPENFILENAME lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End Type Function funOpenFileName(Titre As String) As String 'Fonction pour selectionner un fichier 'declaration des variables Dim OpenFile As OPENFILENAME Dim lReturn As Long Dim sFilter As String OpenFile.lStructSize = Len(OpenFile) 'Filtre les fichiers *.gm2 => Permet de filtrer le type de fichier que vous voulez afficher dans votre boite dialogue, 'ici des fichiers*.gm2 et *_dt sFilter = Donnees GEOS (*.gm2) & Chr(0) & *.gm2 & Chr(0) & Donnees Dessin3000 (*._dt) & Chr(0) & *._dt & Chr(0) OpenFile.lpstrFilter = sFilter OpenFile.nFilterIndex = 1 OpenFile.lpstrFile = String(257, 0) OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1 OpenFile.lpstrFileTitle = OpenFile.lpstrFile OpenFile.nMaxFileTitle = OpenFile.nMaxFile ' Repertoire ou Dossier par defaut OpenFile.lpstrInitialDir = D:AdmDaoProgrammationDessin3000 'Titre de la case de dialog OpenFile.lpstrTitle = Titre OpenFile.flags = 0 lReturn = GetOpenFileName(OpenFile) If lReturn = 0 Then 'pour supprimer le message d'erreur mettre en remarque la ligne suivante MsgBox Erreur ou Annulation de la selection du fichier 'retourne 0 en cas d'erreur funOpenFileName = 0 Else funOpenFileName = Trim(OpenFile.lpstrFile) End If End Function
En esperant vous avoir aide, meilleures salutations au pays de la feuille d’erable.
Jean-Bernard Boschung
Directeur-adjoint RWB Cugy VD
Responsable SIG/DAO
http://www.rwb.ch
#3 Sat 19 November 2005 14:00
- chichiboof
- Juste Inscrit !
- Date d'inscription: 19 Nov 2005
- Messages: 1
Re: Message VBA dans ArCMap
je m'execuse mais j'ai bien voulu executer ce code ,mais la declaration de la fonction privée getfile n'est pas du tout reconnue !! j'utilise ArcGis 8.x Merci
Hors ligne