Bonjour,

j'ai besoin de créer un répertoire avec un nom standard qui dépendra des valeurs rentrées dans ma feuille Excel.

Pour ce faire j'appelle une fenêtre genre GetOpenFileName
je stocke le résultat
je le modifie pour rajouter le nom de du nouveau repertoire (fonction de valeurs de ma feuille vous suivez?)
C'est là que les ennuis commencent :

je voudrais faire en sorte que lorsque le répertoire existe déjà proposer d'autre choix à l'utilisateur.

Pour faire ce test j'utilise la fonction Dir() et j'ai l'impression que quelque soit la valeur que je lui donne elle me renvoi une chaine vide

voici le morceau de mon code incriminé:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
 
Begin:
 
    Directory_Path = ""
 
    ' CHOIX D'UN DOSSIER PAR VBA
 
 
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    Dim vrtSelectedItem As Variant
 
    With fd
 
    MsgBox "Please select where do you want to create a - " & "PRF ACE7000 " & Feuil1.RBU_NAME_text_box.Text & " " & Feuil1.CUSTOMER_name_text_box.Text & "-new directory."
 
    If .Show = -1 Then 'ie if the user has clicked on open
 
                For Each vrtSelectedItem In .SelectedItems
                    Directory_Path = vrtSelectedItem
                Next vrtSelectedItem
 
    Else
 
        Directory_Path = "False"
 
    End If
 
    End With
    Set fd = Nothing
 
    If Directory_Path <> "False" Then
 
        '**************** creation of a new directory that contains the attached files
        test = Dir(Directory_Path)
        MsgBox test
 
        'initializing the automatic directory path name
        Directory_Path = Directory_Path & "\PRF ACE7000 " & Feuil1.RBU_NAME_text_box.Text & " " & Feuil1.CUSTOMER_name_text_box.Text
 
 
        If Dir(Directory_Path) = "" Then         'if the directory does not _ already exists
 
 
            MkDir Directory_Path
            Directory_Path = Directory_Path & "\"
 
        Else
 
            Dim Continue As Integer
 
            Continue = MsgBox("The selected directory contains already a " _
                            & "directory named " & "-PRF ACE7000 " & Feuil1.RBU_NAME_text_box.Text & " " _
                            & Feuil1.CUSTOMER_name_text_box.Text & "-" _
                            & " click on Retry to select an other path, on Ignore to continue with the old directory name or on Abort to stop the process" _
                            , vbAbortRetryIgnore)
 
            Select Case Continue
 
            Case 3 'abort
 
                Exit Sub
 
            Case 4 'retry
 
                GoTo Begin
 
            Case 5 'ignore
 
                Directory_Path = Directory_Path & "\"
                GoTo File_Copying
 
            Case Else
 
            End Select
 
        End If
 
File_Copying:
a l'exécution de ce code dans le cas d'un répertoire existant je tombe sur une erreur 75 : erreur chemin/fichier

Donc je cherche à comprendre pourquoi l'instruction Dir() ne fonctionne pas : quelque soit le chemin choisit : pour avoir un nouveau repertoire ou dans le cas d'un repertoire existant.
(dans mes test j'écris sur un lecteur réseau ça vient ptêt de là...)


Par ailleur Krovax (loué soit son nom!) m'avait conseillé cf (http://www.developpez.net/forums/d78...fichier-excel/) une autre solution pour créer des repertoire, méthode que j'ai trouvé lourde. Je lui ai préféré mkdir. Que pensez vous de ce choix?

si quelqu'un a une idée qui me permettrait de créer un répertoire et dans le cas où il existe déjà proposer à l'utilisateur l'utilisation de ce répertoire existant, l'écrasement de l'ancien ou la sortie pure et simple de la procédure