Créer un dossier par macro

Adeus33

XLDnaute Occasionnel
Bonjour tous le monde

J'aimerai créer un dossier par macro dont l'adresse se trouve sur la feuil 'info' dans la cellule F2
Par exemple:
F2= C:\\essai\\truc1 (y a les slash mais le forum ne les prend pas)

J'ai essayé avec le code ci dessous mais cela ne fonctionne pas.

Code:
emplacement = Sheets('info').Range('F2')
If fs.folderexists(emplacement) = False Then
fs.createfolder (emplacement)
End If

Merci d'avance.

Adeus33

Message édité par: Adeus33, à: 16/05/2006 16:09
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
vite fait

A+
Code:
if dir(Sheets('info').Range('F2').value,vbdirectory)='' then msgbox _
'le répertoire ' & Sheets('info').Range('F2').value & ' n'existe pas', vbokonly+vbinformation

Message édité par: yeahou, à: 16/05/2006 16:55
 

Adeus33

XLDnaute Occasionnel
Bonjour,

J'ai une autre question concernant la création de dossier.

Avec l'instruction MkDir on peut créer un nouveau dossier, jusque la tous va bien mais prenons un exemple.

j'essais de créer l'emplacement suivant:
C:\\archivage\\niveau1\\niveau2

Si l'emplacement C:\\archivage\\niveau1 est dejà créé tous va bien on peut créer le dossier niveau2 mais par contre si il n'est pas créer ca va pas.

Ya t'il un moyen de créer d'un seul coup une arborescence ou faut il passer par plusieurs étapes?

Merci d'avance

Adeus
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour

il faut passer par plusieurs étapes avec un code type
Code:
If Dir('C:\\archivage', vbDirectory) = '' Then MkDir 'C:\\archivage'
If Dir('C:\\archivage\\niveau1', vbDirectory) = '' Then MkDir 'C:\\archivage\\niveau1'
If Dir('C:\\archivage\\niveau1\\niveau2', vbDirectory) = '' Then MkDir 'C:\\archivage\\niveau1\\niveau2'

Cordialement, A+
 

Adeus33

XLDnaute Occasionnel
ok merci Yeahou, c'est bien ce que je pensais malheureusement.


Mais si l'emplacement est inscrit dans une cellule
Par exemple cellule A1 comment faire pour réaliser cette tache

C:-archivage-niveau1-niveau2-niveau3 inscrit dans A1

et seul C:-archivage existe

Il faut que le système soit capable de reperer le premier - en partant de la droite puis inscrire la valeur dans une nouvelle variable(sans le dernier terme).
Ensuite il faut retester si cela existe puis refaire la boucle, etc....

Est ce possible par VBA?

Je crois que je vais pouvoir me débrouiller mais je ne connais pas l'instruction qui me permettrait de trouver le premier - en partant de la droite.

Adeus33
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour

on utilise ce genre de code

A+
Code:
Sub Créer_Chemin()
Dim Chemin As String, Compteur As Integer
Chemin = Range('A1')
Compteur = 4'laisser à 4 si le chemin comprend le lecteur sinon 1
Do
Compteur = InStr(Compteur, Chemin, '\\', 1)
If Compteur > 0 Then
If Dir(Left(Chemin, Compteur - 1), vbDirectory) = '' Then MkDir Left(Chemin, Compteur - 1)
Compteur = Compteur + 1
End If
Loop Until Compteur = 0
MkDir Chemin
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 982
Membres
103 997
dernier inscrit
SET2A