D
didier (2)
Guest
bonjour le forum
Je cherche a creer un repertoire sur mon disque a partir d'excel
j'ai la macro suivante
Public Function Create_Dir(S As String)
'Al Omari, mpep
'inclut la possibilité de créer un répertoire sur une machine distante
'(chemin de type "\\server1\dir1\dir2")
Dim V As Variant
Dim j As Integer
Dim sDir As String
Dim drv As String
Dim fs As Object
Const vblf2 = vbLf & vbLf
'// recherche caractére non valable S = Trim(S)
j = 0
j = j + InStr(1, S, "/")
j = j + InStr(3, S, ":") ' the ":" in C:\
j = j + InStr(1, S, "*")
j = j + InStr(1, S, "?")
j = j + InStr(1, S, ">")
j = j + InStr(1, S, "<")
j = j + InStr(1, S, "|")
j = j + InStr(1, S, """")
If j > 0 Then
MsgBox "Folder " & S & vbLf & "has invalid Characters / : * "" ? < > |"
Exit Function
End If
Set fs = CreateObject("Scripting.FileSystemObject")
With fs
If Left(S, 2) = "\\" Then drv = Mid(S, 1, InStr(3, S, "\")) _
Else drv = .GetDriveName(S) & Application.PathSeparator ' ie C:\
'// Break apart string s
If Left(S, 2) = "\\" Then S = Mid(S, InStr(3, S, "\"), Len(S))
V = Split(Trim(S), "\")
sDir = drv
For j = 1 To UBound(V)
sDir = .BuildPath(RTrim$(sDir), V(j))
If Not .FolderExists(sDir) Then .CreateFolder sDir
Next j
End With
Set fs = Nothing
End Function
Sub test()
S$ = "C:\coucou\Dir2\Dir3"
' MsgBox Dir_Make(S)
Create_Dir S
End Sub
Mais a la lecture de la macro excell bute sur split et me dit que la variable n'est pas déclaré
je suis avec la version 97 d'excell sous windows NT
Avec la même macro sous excell et windows Xp cela fonctionne.
une solution ou une autre macro sans split existe -t-elle svp ?
VBA quand tu nous tiens
Didier 2
Je cherche a creer un repertoire sur mon disque a partir d'excel
j'ai la macro suivante
Public Function Create_Dir(S As String)
'Al Omari, mpep
'inclut la possibilité de créer un répertoire sur une machine distante
'(chemin de type "\\server1\dir1\dir2")
Dim V As Variant
Dim j As Integer
Dim sDir As String
Dim drv As String
Dim fs As Object
Const vblf2 = vbLf & vbLf
'// recherche caractére non valable S = Trim(S)
j = 0
j = j + InStr(1, S, "/")
j = j + InStr(3, S, ":") ' the ":" in C:\
j = j + InStr(1, S, "*")
j = j + InStr(1, S, "?")
j = j + InStr(1, S, ">")
j = j + InStr(1, S, "<")
j = j + InStr(1, S, "|")
j = j + InStr(1, S, """")
If j > 0 Then
MsgBox "Folder " & S & vbLf & "has invalid Characters / : * "" ? < > |"
Exit Function
End If
Set fs = CreateObject("Scripting.FileSystemObject")
With fs
If Left(S, 2) = "\\" Then drv = Mid(S, 1, InStr(3, S, "\")) _
Else drv = .GetDriveName(S) & Application.PathSeparator ' ie C:\
'// Break apart string s
If Left(S, 2) = "\\" Then S = Mid(S, InStr(3, S, "\"), Len(S))
V = Split(Trim(S), "\")
sDir = drv
For j = 1 To UBound(V)
sDir = .BuildPath(RTrim$(sDir), V(j))
If Not .FolderExists(sDir) Then .CreateFolder sDir
Next j
End With
Set fs = Nothing
End Function
Sub test()
S$ = "C:\coucou\Dir2\Dir3"
' MsgBox Dir_Make(S)
Create_Dir S
End Sub
Mais a la lecture de la macro excell bute sur split et me dit que la variable n'est pas déclaré
je suis avec la version 97 d'excell sous windows NT
Avec la même macro sous excell et windows Xp cela fonctionne.
une solution ou une autre macro sans split existe -t-elle svp ?
VBA quand tu nous tiens
Didier 2