Bonjour Pierre,
Merci pour ce code, toutefois j'ai quelques petit soucis.
Lorsque je lance le débogage sur ton code, j'ai un message qui me dit "Erreur de compilation : Objet requis", à la ligne "Set f=FreeFile"
J'ai donc modifié par f=FreeFile et j'ai donc supprimer Set f=Nothing
Concernant : Shell Chr(34) & "C:\Windows\System32\cmd.exe /K D:\GeoTools\setenv.bat" & Chr(34)
Il semblerait que ce soit plutôt :
Shell "C:\Windows\System32\cmd.exe /K " & Chr(34) & "D:\GeoTools\setenv.bat" & Chr(34)
A travers ton code, j'ai tout de même compris que l'on écrit dans le fichier Bath, j'ai donc décider d'en créer un en temporaire afin de ne pas toucher au Bath origine.
Toutefois, mon dernier Print dans le script n'est pas bon.
Aurais tu un tuyau ?
Voici mon code :
Sub OuvreGeoTools() Dim f As Integer Dim sFichier As String Dim StrMsDos As String StrMsDos = "E:\>for /r %i in (*.img) do gdaltindex D:\Coverage_100000.shp %~i"
f = FreeFile 'Chemin du fichier Bath sFichier = "D:\GeoTools\setenv_Temp.bat"
'Si le fichier existe, on le supprime If Dir(sFichier) <> "" Then Kill sFichier 'Création du fichier Bath Call CreerFichier(sFichier)
'Ecriture des lignes Open sFichier For Append As f Print #f, "@echo off" Print #f, "PATH=%CD%\bin;%PATH%" Print #f, "SET FWTOOLS_DIR=%CD%\FWTools2.4.3" Print #f, "call " & Chr(34) & "%FWTOOLS_DIR%\bin\setfwenv.bat" & Chr(34) Print #f, "call " & Chr(34) & StrMsDos & Chr(34) Close f
'Execution de MsDos Shell "C:\WINDOWS\system32\cmd.exe /K " & Chr(34) & "D:\GeoTools\setenv_Temp.bat" & Chr(34)
End Sub
Sub CreerFichier(ByVal sPath As String) 'Création de fichier texte Dim fso As FileSystemObject Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateTextFile sPath Set fso = Nothing End Sub
Cordialement
Christophe |