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 :

Création d'une série de répertoire sur le bureau [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 14
    Points
    14
    Par défaut Création d'une série de répertoire sur le bureau
    Bonjour à tous,

    Une fois de plus, je fais appelle à votre expérience pour ce petit problème que je me pose.

    Je viens d'adapter deux macros :

    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
    'Créer sur le bureau un nouveau dossier nommé : "Planning  S+ n°sem"
    Sub MacroDossierSem()
    Dim NumSem As Byte
     
    NumSem = DatePart("ww", Date, 2, 2)
     
    Const Cible = &H10 'Bureau
    Dim objShell As Object
    Dim objFolder As Object, objFolderItem As Object
     
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(Cible)
    Set objFolderItem = objFolder.Self
     
    MkDir objFolderItem.Path & "\" & "Planning S" & NumSem
     
    End Sub
    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
    'Créer sur le bureau un nouveau dossier nommé comme l'onglet actif
    Sub MacroPlanning()
    Dim NumSem As Byte
    Dim NomFeuille As String
     
    NumSem = DatePart("ww", Date, 2, 2)
    NomFeuille = ActiveSheet.Name
     
    Const Cible = "C:\Users\Jerome\Desktop"
    Dim objShell As Object
    Dim objFolder As Object, objFolderItem As Object
     
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(Cible)
    Set objFolderItem = objFolder.Self
     
    MkDir objFolderItem.Path & "\" & NomFeuille
     
    End Sub
    Ces deux macros fonctionnent bien séparément mais comment faire pour les mixer en un seul code ? Je voudrais que le répertoire "NomOngletActif" soit créé dans le repertoire "Planning SX" sur le bureau.

    J'ai bien essayé : Const Cible = "C:\Users\Jerome\Desktop\Planning S & NumSem"
    Mais ça ne fonctionne pas (ça m'aurait étonné car il doit cherché un dossier intitulé exactement "Planning S & NumSem" non ?)

    En écrivant ces lignes, je me rends compte qu'un autre problème se posera ensuite. Je serai amené à créer plusieurs repertoires dans "Planning SX", comment faire dans ce cas pour ne créer ce dossier que s'il n'existe pas ?

    Auriez-vous une solution par hasard ?

    Merci d'avance.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Je viens de trouver

    En fouillant un peu (beaucoup) sur le net, je suis tombé sur ce bout de code que je viens de finir d'adapter.
    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
    'Créer un répertoire et ses répertoires parents
    Function MakeDirEx(DirPath$) As Boolean
    Dim i%, tmp, Arr
     
    If InStr(1, DirPath, ":") = 0 Then
    Arr = Split(CurDir & DirPath, "\")
    Else: Arr = Split(DirPath, "\")
    End If
     
    tmp = Arr(0)
    For i = LBound(Arr) + 1 To UBound(Arr)
    If Arr(i) <> "" Then
    tmp = tmp & "\" & Arr(i)
    On Error Resume Next
    MkDir tmp
    On Error GoTo 0
    End If
    Next
     
    If Dir(DirPath, vbDirectory) = "" Then
    On Error Resume Next
    RmDir Arr(0) & "\" & Arr(1)
    On Error GoTo 0
    Else
    MakeDirEx = True
    End If
     
    End Function
     
    Sub MacroPlanning()
    Dim NumSem As Byte
    Dim CheminBureau As String, NomDossier As String, NomFeuille As String
     
    CheminBureau = "C:\Users\Jerome\Desktop\"
    NumSem = DatePart("ww", Date, 2, 2)
    NomDossier = "Planning S" & NumSem
    NomFeuille = ActiveSheet.Name
     
    dossier$ = CheminBureau & "\" & NomDossier & "\" & NomFeuille
    MakeDirEx (dossier)
    End Sub
    Cela aidera peut-être quelqu'un un jour.

    A+

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

Discussions similaires

  1. Création d'une carte de France sur un état
    Par rnicolas.1987 dans le forum IHM
    Réponses: 11
    Dernier message: 15/10/2008, 12h02
  2. Masquer une série de données sur un graphique
    Par Lameth dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/07/2008, 01h26
  3. lire une série de répertoires
    Par salseropom dans le forum C
    Réponses: 10
    Dernier message: 10/08/2006, 16h59
  4. Réponses: 9
    Dernier message: 05/04/2006, 17h48
  5. Création d'une base de données sur un dossier partagé
    Par richard038 dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/03/2006, 12h26

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