Mazhe
Messages postés17Date d'inscriptionmardi 24 octobre 2006StatutMembreDernière intervention15 novembre 2006
-
8 nov. 2006 à 16:17
Mazhe
Messages postés17Date d'inscriptionmardi 24 octobre 2006StatutMembreDernière intervention15 novembre 2006
-
15 nov. 2006 à 13:51
Plop all,
Y'a moyen d'utiliser une commande permettant de créer une arborescence ?
Je m'explique :
C:\temp existe
C:\Temp\PDR n'existe pas
C:`\Temp\Pdr\DC n'existe pas
C:\Temp\Pdr\DC\Qualif n'existe pas
Comment puis-je procéder pour créer ces 3 dossiers (pdr, dc et qualif) et donc cette arborescence...Mkdir et createfolder tels que je les connais (donc peu) ne me le permettent pas.
j'ai fais un truc du style :
set source = c:\temp\pdr\dc\qualif
mkdir (source)
mais que nenni... Enfin, ça revient au même quoi...
Z'avez une solution pour un débutant comme moi siouplait ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 8 nov. 2006 à 16:25
Il faut utiliser l'api MakeSureDirectoryPathExist.
Private Declare Function MakeSureDirectoryPathExists Lib"imagehlp.dll" (ByVal lpPath As String) As Long
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net
'create the directory "c:\this\is\a\test\directory", if it doesn't exist already
MakeSureDirectoryPathExists "c:\this\is\a\test\directory"
End Sub
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 8 nov. 2006 à 17:51
Bonjour à tous....
Un exemple avec fso.
Il y a surement plus simple avec un wend ou un do until.
Const racine = "d:\Temp"
MsgBox Verif_Folder(racine),,"Vérification du répertoire"
Function Verif_Folder(rac)
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(rac) Then
'Msgbox "la racine n existe pas"
Set fso = Nothing
Exit Function
Else
'MsgBox "la racine existe"
Dim ext(3), i, f, result
ext(0) = "Pdr"
ext(1) = "DC"
ext(2) = "Qualif"
Dim tab : tab = Array(ext(0), ext(1), ext(2))
For i = 0 To UBound(tab)
result = result & tab(i)
'MsgBox rac & result
If Not fso.FolderExists(rac & result) Then Set f = fso.CreateFolder(rac & result)
Next
Verif_Folder = rac & result
End If
Set fso = Nothing
End Function
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 8 nov. 2006 à 18:07
Re,
Une petite erreur, pas la peine de passer par un second tableau.
Dim ext(3), i, f, result
ext(0) = "Pdr"
ext(1) = "DC"
ext(2) = "Qualif"
For i = 0 To UBound(ext)
result = result & ext(i)
'MsgBox rac & result
If Not fso.FolderExists(rac & result) Then Set f = fso.CreateFolder(rac & result)
Next
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 8 nov. 2006 à 16:37
La ligne Declare, tu la met au début de la feuille ou tu vas utiliser ta fonction et avant le code. Ou le mieux, tu la met dans un module en remplacçant Private par Public, elle sera dispo pour l'ensemble du projet comme ça.
Le reste du code n'est qu'un exemple pour montrer ce que ça fait.
Pour toi, dans ton code, tu remplace juste MkDir par MakeSureDirectoryPathExist
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 9 nov. 2006 à 12:27
Bonjour à tous....
J'ai fait une recherche google une "imagehlp.dll".
Il s'avère que cette dll est "parfois, souvent", verolée.
J'en reviens donc à "mon" script fonctionnel, qui est
facilement adaptable en vb6 (ajout des As...)
Mazhe
Messages postés17Date d'inscriptionmardi 24 octobre 2006StatutMembreDernière intervention15 novembre 2006 9 nov. 2006 à 16:22
Donc, merky beaucoup...
Ceci étant, voici mon niou problème :
______________________________________
Private Sub Copier_Click()
If Fso.FolderExists(Dest) = True Then
If MsgBox("Etes vous sur de vouloir copie " & Source & " vers " & Dest, vbQuestion + vbYesNo, "Confiramtion") = vbYes Then
MsgBox ("Copie en cours")
Call Fso.CopyFolder(Dest & "*", DestOld, True)
Call Fso.CopyFolder(Source & "*", Dest, True)
MsgBox ("copie terminée")
...
_______________________________________
Donc, en cliquant sur "Oui" de la msgbox demandant confirmation, je souhaiterais avoir juste une fenêtre indiquant "Copie en cours"... La msgbox que j'ai mis en gras le fait bien mais demande que l'on clic sur le bouton OK pour lancer la copie.... Or, étant donné qu'il y a quelques fichiers à copier, on a l'impression que l'appli a buggé.
Y parait qu'insérer une progressbar, c'est un peu miséreux donc, je voulais juste avoir un message "copie en cours" puis, une fois fini la msgbox "Copie terminée"...
Mais je souhaitais avoir une fenêtre indiquant "copie en cours" pendant la copie (pour éviter que l'on croit que ça plante) et qui se ferme pour laisser apparaitre un "copie terminée"...
En recopiant les Call Fso.copyfolder.... dans la feuille CeC, bien entendu, les variables ne sont pas reconnues (dest, destold, etc...)