Mkdir

cs_pb1 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008 - 28 févr. 2008 à 15:52
cs_pb1 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008 - 29 févr. 2008 à 08:56
Bonjour,

J'utilise la fonction Mkdir pour créer un dossier. elle ne me crée rien du tout. Doit-je installer ou activer quelque chose pour la faire fonctionner.

Merci

15 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
28 févr. 2008 à 16:13
Salut,

Qu'elle syntaxe utilises-tu ? As-tu un message d'erreur ?

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 févr. 2008 à 16:18
> [auteur/EXPLOREUR/17710.aspx Exploreur]: voir ici

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
28 févr. 2008 à 16:21
Salut Jrivet ,

Lol...il y a au moins une amélioration...Bonjour et Merci

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 févr. 2008 à 16:34
Salut
Ma boule de cristal (version 2.0) me dit que tu tentes de créer une arborescence complète et non un seul sous-répertoire derrière un répertoire existant.

Pour créer une arborescence complète, voici une petite fonction à coller dans un module :

Private Sys As Object

Public Function CrééRépertoiresRécursifs(ByVal Chemin As String) As Boolean




    ' On construit l'arborescence en partant du début
    ' (permet de recontruire un arbre entier)
    ' Renvoie True s'il y a eu un problème (arbre non créé)

    Dim s() As String
    Dim Temp As String
    Dim sErreur As String
    Dim r As Long
    Dim Quantité As Long
    
    On Error GoTo Erreur
    If Sys Is Nothing Then
       Set Sys = CreateObject("Scripting.FileSystemObject")
    End If
    ' On ressort si le répertoire existe déjà (RàS)
    If Len(Chemin) = 0 Or Sys.FolderExists(Chemin) Then Exit Function
    ' Recréé les répertoires depuis la racine
    s = Split(Chemin, "")
    Quantité = UBound(s)
    For r = 0 To Quantité
        Temp = Temp & s(r) & ""
        If Not Sys.FolderExists(Temp) Then Sys.CreateFolder (Temp)
    Next r
    
    Exit Function
    
Erreur: '---------------- Gestion erreur
    sErreur = CStr(Err.Number) & " - " & Err.Description
    Temp = "Il n'a pas été possible de créer le répertoire :" & vbCrLf & vbCrLf & _
            Chemin & vbCrLf & vbCrLf & _
           "Causes possibles :" & vbCrLf & _
           "- Le lecteur désigné n'est pas accessible," & vbCrLf & _
           "- Les droits d'accès ne permettent pas la création" & vbCrLf & _
           vbCrLf & "Vérifiez et corrigez."
    MsgBox Temp, vbCritical Or vbOKOnly, App.Title & " " & App.Comments & _
            " - Création des répertoires de travail"
    CrééRépertoiresRécursifs = True    ' Signale Erreur



End Function




Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés





<hr />

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 févr. 2008 à 16:35
J'espère que ça fonctionne aussi sous VBA, jamais essayé
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 févr. 2008 à 16:37
Salut [auteur/JACK/2204.aspx jack],
Ah peu être oui. mais il y a une API MakeSurePathExists ou un truc dans le style

@+: Ju£i?n
Pensez: Réponse acceptée
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
28 févr. 2008 à 16:38
Bonjour

Sinon en couplant Dir$() et MkDir() c'est faisable sans fso.

Sinon en une API : http://www.codyx.org/snippet_generation-recursive-arborescence-repertoires_289.aspx

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 févr. 2008 à 16:41
Ah Voila...

MErci [auteur/NHENRY/68514.aspx NHenry], c'était MakeSureDirectoryPathExists

@+: Ju£i?n
Pensez: Réponse acceptée
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 févr. 2008 à 17:46
Bonjour,

Ca ne marche pas, comme ceci ?

Private Sub Command2_Click()
  Dim titi As String, toto
  toto = Array("Leprincipal", "lesousrep1", "lesousrep2", "lesousrep3", "lesousrep4")
  titi = "d:"
  For i = 0 To UBound(toto)
    titi = titi & "" & toto(i)
    If Dir(titi & "", vbDirectory) = "" Then
      MkDir titi
    End If
  Next
End Sub
0
cs_pb1 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008
28 févr. 2008 à 17:59
Bonjour,

En fait, mon problème n'est pas de créer des sous-répertoires mais de créer des répertoires.

Exemple de code :

path2 =  "C:\Fichiers Travail"
MkDir path2

Ce code ne me crée pas le répertoire. Je n'ai pas de message d'erreur.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 févr. 2008 à 18:05
Bizarre autant qu'étrange !!!!

A moins que :

- soit tu veuilles créer sur une autre machine que la tienne
- soit la racine est protégée en écriture
- soit encore ... (possible) ... le répertoire est bien créé mais non encore affiché dans l'explorateur (un petit copup de affichage ===>> actualiser)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 févr. 2008 à 19:49
salut,

... soit tu es sous vista et excel n'a pas les droits  :)

ps : (dans le doute) passes-tu seulement par cette ligne de code en pas à pas?
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
28 févr. 2008 à 22:30
Bonsoir,

En VBA pour creer plusieurs repertoires en une fois et de facon simple on peu utiliser la fonction Shell et la commande dos mkdir :

Sub CreatRep()
    Dim NewRep As Double, NewRepPath As String
    NewRepPath = "c:\temp\bob\bil"
    NewRep = Shell("cmd.exe /c mkdir " & NewRepPath, 0) 'ici le repertoires bob et bil seront crée dans c:\temp
End Sub

Simple mais efficace

A+
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
28 févr. 2008 à 22:32
... oups desolé !

pas vu les derniers echanges  avant de poster

A+
0
cs_pb1 Messages postés 4 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 29 février 2008
29 févr. 2008 à 08:56
Je suis sous XP pro avec excel 2003


 


 
0
Rejoignez-nous