VBA création dossier avec différentes réponses pour différentes condition

Chtitefanny

XLDnaute Junior
Bonjour,

Je me suis mise depuis peut à la macro pour Excel (celui que j'ai c'est le 2003)

Et j'aimerais créer une macro pour :
- La création d'un dossier, à un endroit donnée, où l'on demande le nom à y attribuer.
- si déjà existant : afficher un message l’indiquant
- si créé : afficher un message affirmant la création du dossier
- si action annulé : indiquer que rien est fait.

J’ai essayé quelque chose, mais en vain. Je suis un peut beaucoup perdu.

Fanny
 

kingfadhel

XLDnaute Impliqué
Re : VBA création dossier avec différentes réponses pour différentes condition

Bonjour,

tu trouve ton bonheur ici:
à copier dans un module et affecter un bouton à la macro "Créer"

Code:
Function RépertoireExiste(Chemin As String) As Boolean
On Error Resume Next
RépertoireExiste = GetAttr(Chemin) And vbDirectory
    If RépertoireExiste = True Then
       MsgBox "Le répertoire existe déja"
        Exit Function
    Else
        MkDir (Chemin)
        MsgBox "le Répertoire " & Chemin & " a été créer avec succés"
    End If
End Function

Sub Creer()
Dim Chemin As String
Chemin = InputBox("Saisir l'adresse complete du répertoire a créer", "Chemin complet")
Call RépertoireExiste(Chemin)
End Sub
 

kingfadhel

XLDnaute Impliqué
Re : VBA création dossier avec différentes réponses pour différentes condition

Bonjour,

tu trouve ton bonheur ici:
à copier dans un module et affecter un bouton à la macro "Créer"

Code:
Function RépertoireExiste(Chemin As String) As Boolean
On Error Resume Next
RépertoireExiste = GetAttr(Chemin) And vbDirectory
    If RépertoireExiste = True Then
       MsgBox "Le répertoire existe déja"
        Exit Function
    Else
        MkDir (Chemin)
        MsgBox "le Répertoire " & Chemin & " a été créer avec succés"
    End If
End Function

Sub Creer()
Dim Chemin As String
Chemin = InputBox("Saisir l'adresse complete du répertoire a créer", "Chemin complet")
Call RépertoireExiste(Chemin)
End Sub

un fichier joint :
 

Pièces jointes

  • Chtitefanny.xls
    38.5 KB · Affichages: 85

kingfadhel

XLDnaute Impliqué
Re : VBA création dossier avec différentes réponses pour différentes condition

Re,
Nouveau code:

Code:
Sub Creer()
Dim test As Boolean
Dim Chemin, Commande As String

DD = "E:\Fichiers_Xls\"
Chemin = DD & InputBox("Saisir le nom du répertoire a créer", "Chemin")

On Error Resume Next
test = GetAttr(Chemin) And vbDirectory
    If test = True Then
       MsgBox "Le répertoire existe déja"
        Exit Sub
    Else
        Commande = Environ("comspec") & " /c mkdir " & Chemin
        Shell Commande, 0
        MsgBox "le Répertoire a été créer avec succés"
    End If
End Sub
 

MJ13

XLDnaute Barbatruc
Re : VBA création dossier avec différentes réponses pour différentes condition

Bonjour Fanny, Kindfadhel

J'utilise souvent un code de ce type:

Code:
Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                             (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
 
Sub TestCréationDossier()
Dim Rep As String
    Rep = "C:\repA\repB\repC\RepV"
    nomdossier = Dir(Rep, vbDirectory)
    If nomdossier <> Empty Then MsgBox ("Le dossier existe"): Exit Sub
        SHCreateDirectoryEx 0&, Rep, 0&
    MsgBox ("Le dossier " & Rep & " a été crée.")
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : VBA création dossier avec différentes réponses pour différentes condition

Bonjour,

une autre approche :
Code:
Option Explicit
Sub test()
Dim d As String, f As String
d = InputBox("Nom du dossier ?")
If d = "" Then MsgBox "action annulée...": Exit Sub
f = ThisWorkbook.Path & "\" & d
If Dir(f, vbDirectory) = "" Then
    MkDir f
Else
    MsgBox "le dossier : " & d & " existe déjà"
End If
End Sub

bon après midi
@+
 

Chtitefanny

XLDnaute Junior
Re : VBA création dossier avec différentes réponses pour différentes condition

Merci à tout, j'ai trouvé quelque chose qui se raproche ;-)

Code :
Sub N_Dossier()
Dim dossier As String, f As String

dossier = InputBox("N° Dossier ", "Création d'un Dossier ")
If dossier = "" Then MsgBox "action annulée...": Exit Sub

f = ThisWorkbook.Path & "\" & dossier
If dir(f, vbDirectory) = "" Then
MkDir f
Else
MsgBox "le dossier : " & dossier & " existe déjà"

If dir("C:\Documents and Settings\Test\" & dossier, vbDirectory) = "" Then _
MkDir "C:\Documents and Settings\Test\" & dossier

End If
End Sub

J'ai juste pas le message indiquant que le dossier vient d'être créé, mais ça le fait totalement ;-)

Merci encore ;-)
 

Pierrot93

XLDnaute Barbatruc
Re : VBA création dossier avec différentes réponses pour différentes condition

Re,

J'ai juste pas le message indiquant que le dossier vient d'être créé, mais ça le fait totalement ;-)

modifie comme suit :

Code:
Option Explicit
Sub test()
Dim d As String, f As String
d = InputBox("Nom du dossier ?")
If d = "" Then MsgBox "action annulée...": Exit Sub
f = ThisWorkbook.Path & "\" & d
If Dir(f, vbDirectory) = "" Then
    MkDir f
    MsgBox "le dossier : " & d & " a été créé..."
Else
    MsgBox "le dossier : " & d & " existe déjà"
End If
End Sub
 

Chtitefanny

XLDnaute Junior
Re : VBA création dossier avec différentes réponses pour différentes condition

Bon, j'ai un autre souci ...

C'est pour créer des dossiers, dans un répertoire, sur un réso.
Le répertoire dans lequel sont créés les dossiers est non loin du fichier excel avec la macro.
Et j'aurai voulu savoir si cela pouvai être possible d'indiquer un chemin a partir du fichier et non de tout le réso ?

Merci d'avance :rolleyes:
 

Chtitefanny

XLDnaute Junior
Re : VBA création dossier avec différentes réponses pour différentes condition

Le chemin que je mets pour indiquer le répertoire où créer le dossier est trop long. Les dossier sont créés bien avant.
Du coup, c'est pour savoir si on peut mettre un chemin du fichier excel au répertoire ? (et non depuis le début du réso)

Non, je ne sais pas si c'est plus claire. :confused:
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11