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 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 big_smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB