IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

creer un repertoire en un seul coup


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut creer un repertoire en un seul coup
    bonjour, j utilise ce code pour creer des fichiers si ils ne le sont pas, mais si le repertoire n est pas creer rien ne se passe et j ai pas tres envie de creer tout le repertoire...

    Une idee?



    code:
    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
    Private Sub CommandButton1_Click()
        Dim i As Integer
        Dim Directory1, Directory2, Directory3, Directory4, Directory5, Directory6 _
        , Directory7, Directory8, Directory9, Directory10 As String
        Dim CheckCreate As Long
     
        Directory1 = "D:\Documents and Settings\be30enginering\My Documents\structure"
        Directory2 = "D:\Documents and Settings\be30enginering\My Documents\shared"
        Directory3 = "D:\Documents and Settings\be30enginering\My Documents\structure\template A"
        Directory4 = "D:\Documents and Settings\be30enginering\My Documents\structure\template B"
        Directory5 = "D:\Documents and Settings\be30enginering\My Documents\structure\template C"
        Directory6 = "D:\Documents and Settings\be30enginering\My Documents\structure\template D"
     
     
        CheckCreate = SHCreateDirectoryEx(0&, Directory1, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory2, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory3, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory4, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory5, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory6, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory7, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory8, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory9, 0&)
        CheckCreate = SHCreateDirectoryEx(0&, Directory10, 0&)
     
        UserForm1.Show
    End Sub
    merci
    Tom

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    1) le code que tu montres concerne la création d'arborescences et ne peut que fonctionner
    2) tu nous parles par contre de la création de fichiers ... et non d'aborescences...
    Un fichier ne peut être créé que dans un répertoire existant....

    Je comprends donc mal ta question ...

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    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
    Private Sub CommandButton1_Click()
        Dim i As Integer
        Dim Directory(6)
        Dim CheckCreate As Long
     
        Directory(1) = "D:\Documents and Settings\be30enginering\My Documents\structure"
        Directory(2) = "D:\Documents and Settings\be30enginering\My Documents\shared"
        Directory(3) = "D:\Documents and Settings\be30enginering\My Documents\structure\template A"
        Directory(4) = "D:\Documents and Settings\be30enginering\My Documents\structure\template B"
        Directory(5) = "D:\Documents and Settings\be30enginering\My Documents\structure\template C"
        Directory(6) = "D:\Documents and Settings\be30enginering\My Documents\structure\template D"
    For i = 1 to 6
        CheckCreate = SHCreateDirectoryEx(0&, Directory(i), 0&)
    Next
        UserForm1.Show
    End Sub
    Ceci dit, je ne connais pas CheckCreate ni SHCreateDirectoryEx, c'est dans office 2007 ?

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    [CODE]Ceci dit, je ne connais pas CheckCreate, c'est dans office 2007 ?
    CheckCreate n'est jamais qu'une variable de retour de la fonction utilisée (il pourrait d'ailleurs fort bien s'en passer en enlevant les parenthèses, ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHCreateDirectoryEx 0&, Directory(i), 0&
    J'en profite pour signaler à tomy que l'orsqu'il écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Directory1, Directory2, Directory3, Directory4, Directory5, Directory6 _
        , Directory7, Directory8, Directory9, Directory10 As String
    Seule la variable Directory10 est typée en string et que les autres sont typées en Variant !

  5. #5
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    merci ouskel nor pour la simplification du code...
    SHCreateDirectoryEx est un API de windows utilisable sous 2003 sans probleme et meme 2000 je pense .


    Pour te repondre, Ucfoutu:

    J ai essaye mon code et il cree bien le dossier mais pas l arborescence.

    Donc pour toi normalement:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Directory(1) = "D:\Documents and Settings\be30enginering\My Documents\structure"
    CheckCreate = SHCreateDirectoryEx(0&, Directory(1), 0&)
    je creer toute l arborescence et le dossier structure en meme temps?



    merci de vos rep et de ta future reponse Ucfoutu

    J'en profite pour signaler à tomy que l'orsqu'il écrit :


    Code :
    Dim Directory1, Directory2, Directory3, Directory4, Directory5, Directory6 _
    , Directory7, Directory8, Directory9, Directory10 As StringSeule la variable Directory10 est typée en string et que les autres sont typées en Variant !
    j en apprend avec vous deux...

  6. #6
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    je ne comprends pas où se situe la question ?
    Pourquoi tu ne testes pas ce que tu proposes au lieu de poser la question ?


    "le dossier mais pas l'arborescence" ? ça veut dire quoi.
    le code marche ou il ne marche pas ?

  7. #7
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    c est bon ucfoutu ma repondu sur le forum "Tester la presence d'un dossier"

    Le probleme est resolu donc Les moderateurs vous pouvez soit fusionne ces deux forums ou alors supprimmer celui-ci


    Merci a tous surtout a toi Ucfoutu et desole du derangement...

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    oh !
    Mon message précédent a disparu !

    je demandais à Tomy de lancer ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
     (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
     
    Private Sub Command1_Click()
      repertoire = "D:\repA\repB\repC"
      SHCreateDirectoryEx 0&, repertoire, 0&
    End Sub
    et d'aller constater dans son explorateur la création de l'arborescence ...
    Je lui demandais également de vérifier qu'il n'y avait pas plantage en recommençant (car cette fonction ne crée pas ce qui exoiste déjà)...

    Et je lui rappelais que cette fonction travaille en silence.

  9. #9
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    C'est bien ce que disais à Tomy, pourquoi nous faire tester ce qu'il peut tester lui-même ?

    Citation Envoyé par ucfoutu Voir le message
    oh !
    Mon message précédent a disparu !

    je demandais à Tomy de lancer ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
     (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
     
    Private Sub Command1_Click()
      repertoire = "D:\repA\repB\repC"
      SHCreateDirectoryEx 0&, repertoire, 0&
    End Sub
    et d'aller constater dans son explorateur la création de l'arborescence ...
    Je lui demandais également de vérifier qu'il n'y avait pas plantage en recommençant (car cette fonction ne crée pas ce qui exoiste déjà)...

    Et je lui rappelais que cette fonction travaille en silence.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. suppression et ajout d'un seul coup....
    Par exyacc dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/04/2006, 15h28
  2. Réponses: 2
    Dernier message: 13/03/2006, 19h52
  3. Réponses: 9
    Dernier message: 08/01/2006, 06h53
  4. [C++] Creer des repertoires de facon recursive
    Par barthelv dans le forum Windows
    Réponses: 2
    Dernier message: 25/04/2005, 15h12
  5. Réponses: 2
    Dernier message: 05/12/2002, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo