Tester et creer un repertoir (VBA Excel)

Résolu
G.David Messages postés 790 Statut Membre -  
G.David Messages postés 790 Statut Membre -
Bonjour,
Voila le problème:
J'ai sur un classeur ,qui me sert de master un N° de moule
d'autre part j'ai sur un serveur un dossier moule contenant des sous dossier au numero des moule existant
moule __1235
__2432
__1745
etc..
mon classeur creer un deuxieme classeur l'enregistre et le nomme (pour l'instant dans un repertoir C:\Doc
ce que je désire c'est depuis excel enregistrer ce classeur dans le repertoire moule \"N° moule\mesure\fichier.xls
mais je dois tester si le dossier "N°moule" existe si non le creer idem pour le dossier "mesure"
J'ai bien trouver sur l'aide en lgne createfolder et existfolder mais je n'ai pas reussi à comprendre comment créer l'objet réclammer en debut de syntaxe
Merci
G.David

le respect n'est pas un dû
il se merite

3 réponses

  1. G.David Messages postés 790 Statut Membre 203
     
    Salut voilà ce que j'ai fait

    Sub récuperation()
    Dim nom(5) As Variant
    Dim Repertoir As String
    Dim fs, f, f1, s, sf
    Dim NumMoule As String

    '
    '================== Récupération des noms ================
    '

    Application.ScreenUpdating = False
    Sheets(1).Select

    NumMoule = Range("c6").Value

    '
    ChDir Repertoir
    '============== test/creation du dossier================
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(Repertoir)
    Set sf = f.SubFolders
    t = 0
    For Each f1 In sf
    s = f1.Name
    If s = NumMoule Then
    t = 1
    End If

    Next
    If t = 0 Then ' le repertoir moule n'existe pas
    ChDir Repertoir
    Repertoir = Repertoir + "\" + NumMoule
    MkDir Repertoir
    ChDir Repertoir
    Repertoir = Repertoir + "\" + "th"
    MkDir Repertoir
    ChDir Repertoir

    ElseIf t = 1 Then 'repertoir moule existe test le s/s rep TH
    Repertoir = Repertoir + "\" + NumMoule
    ChDir Repertoir
    Set f = fs.GetFolder(Repertoir)
    Set sf = f.SubFolders
    t = 0
    For Each f1 In sf
    s = f1.Name
    If s = "th" Then
    t = 2
    End If
    Next
    End If
    If t = 2 Then
    Repertoir = Repertoir + "\" + "th"
    Else
    ChDir Repertoir
    Repertoir = Repertoir + "\" + "th"
    MkDir Repertoir
    ChDir Repertoir
    End If
    '===============
    le respect n'est pas un dû
    il se merite
    2
  2. Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
     
    Salut,

    dans l'aide sur CreateFolder, clique sur "Applies To", et tu auras la réponse

    A+.
    0
  3. G.David Messages postés 790 Statut Membre 203
     
    Salut et merci
    le message n'est plus d'actualité j'ai trouvé la solution mais je vais quand meme jetter un oeil .(l'aide en ligne d'excel c'est pas le top quand même)
    Cordialement
    G.David
    PS j'ai pas tout compris a ce que j'ai fait mais ça marche
    le respect n'est pas un dû
    il se merite
    0