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 :

Repertoire et sous repertoire [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    mécanique engin de TP
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : mécanique engin de TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 8
    Points
    8
    Par défaut Repertoire et sous repertoire
    Bonjour a tous,
    j'ai besoin de votre aide concernant la création de répertoire et sous répertoire nommé en fonction de la valeur de cellule.

    Concrètement j'ai plusieurs client, chacun ayant plusieurs machines et sur chaque machine des travaux à réalisés.

    je vous joint mon fichier pour être plus clair.

    lors de la sauvegarde je souhaite créer un répertoire principal par année nommé par la valeur de la cel L2,
    a l'intérieur de celui-ci les répertoire client nommé par la valeur de la cel E4,
    ensuite dans chaque répertoire client un répertoire par machine nommé par la valeur des cel E27 et E29,
    et pour finir dans chaque répertoire de machine un répertoire pour chaque intervention nommé par la valeur de la E53 suivi de la valeur des celules E32,F32 et G32 (date d'entrée de la machine en atelier).

    J'ai parcouru plusieurs forum j'arrive a créée facilement le premier dossier avec la fonction mkdir mais aprés je suis perdu.

    J’espère avoir été clair dans mes explication

    Par avance merci a ceux qui se pencherons sur mon problème

    François
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

    et tu bloque ou ? utilise aussi mkdir pour créer tes autres répertoires ... montre ton code qui ne fonctionne pas..

  3. #3
    Futur Membre du Club
    Homme Profil pro
    mécanique engin de TP
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : mécanique engin de TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Bonjour Bbil

    Merci de ton aide
    le code que j'utilise:
    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
     
    Sub créationdossieretsauve()
     
    'creation du nouveau dossier avec nom du client
     
    Dim NOMDOSSIER$, Chemin$
    NOMDOSSIER = Range("e4") & "_" & Range("e27") & "_" & Range("e29") & "_" & Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hhmmss")
    MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
    Chemin = ThisWorkbook.Path & "\" & NOMDOSSIER & "\"
     
    ' sauvegarde automatique XLSM dans nouveau dossier
     
    ThisWorkbook.SaveCopyAs Chemin & Range("e4") & "_" & Range("e27") & "_" & Range("e29") & ".xlsm"
     
     
    End Sub
    je veut modifier le code en créant des sous répertoires en fonction des valeurs de cellule comme je l'indique initialement dans ma question

    Merci

    François

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben tu dis commencer par :

    lors de la sauvegarde je souhaite créer un répertoire principal par année nommé par la valeur de la cel L2,
    et je ne vois aucune référence à cette cellule L2 dans ton code .?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    mécanique engin de TP
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : mécanique engin de TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    ne code avec la cellule L2:
    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
    Sub créationdossieretsauve()
     
    'creation du nouveau dossier avec nom du client
     
    Dim NOMDOSSIER$, Chemin$
    NOMDOSSIER = Range("L2")
    MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
    Chemin = ThisWorkbook.Path & "\" & NOMDOSSIER & "\"
     
    ' sauvegarde automatique XLSM dans nouveau dossier
     
    ThisWorkbook.SaveCopyAs Chemin & Range("e4") & "_" & Range("e27") & "_" & Range("e29") & ".xlsm"
     
     
    End Sub
    c'est pour les autres sous répertoire que mes connaissances sont insuffisantes ...

    merci à toi

    François

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    et bien que te manque-t-il pour faire le mkDir celon le contenu de la cellule E4 ? c'est la même chose...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    mécanique engin de TP
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : mécanique engin de TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    j'essai de dupliquer le code mais cela ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub créationdossieretsauve()
     
    'creation du nouveau dossier avec nom du client
     
    Dim NOMDOSSIER$, Chemin$
    NOMDOSSIER = Range("L2")
    MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
    Chemin = ThisWorkbook.Path & "\" & NOMDOSSIER & "\"
    NOMDOSSIER = Range("E4")
    MkDir ThisWorkbook.Path & "\" & NOMDOSSIER
    Chemin = ThisWorkbook.Path & "\" & NOMDOSSIER & "\"
     
    End Sub
    j’essaie depuis plusieurs soir mais sans aucun résultats,

  8. #8
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Essai ceci pour voir si ça te convient :
    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
     
    Sub CreerDossier()
     
        Dim Fe As Worksheet
        Dim Tbl(1 To 4) As String
        Dim Dossier As String
        Dim DosClient As String
        Dim DosMachine As String
        Dim DosIntervention As String
        Dim I As Integer
     
        Set Fe = Worksheets("PARAMETRE")
     
        With Fe
     
            Dossier = .Range("L2")
            DosClient = .Range("E4")
            DosMachine = .Range("E27") & "_" & .Range("E29")
            DosIntervention = .Range("E53") & .Range("E32") & .Range("F32") & .Range("G32")
     
        End With
     
        'stocke dans un tableau pour boucler ensuite
        Tbl(1) = Dossier
        Tbl(2) = Dossier & "\" & DosClient
        Tbl(3) = Dossier & "\" & DosClient & "\" & DosMachine
        Tbl(4) = Dossier & "\" & DosClient & "\" & DosMachine & "\" & DosIntervention
     
        'le lecteur par défaut est celui où est enregistré le classeur
        ChDir Split(ThisWorkbook.Path, "\")(0) & "\"
     
        For I = 1 To 4
     
            'gère les éventuelles erreurs
            On Error Resume Next
     
            'vérifie si le dossier existe déjà
            If Dir(Tbl(I), vbDirectory) = "" Then
     
                'crée le dossier dans le lecteur
                MkDir Tbl(I)
     
                'si une erreur est générée, message et fin de procédure...
                If Err.Number <> 0 Then
     
                    MsgBox "Erreur lors de la création du dossier '" & Split(Tbl(I), "\")(I) & "' !"
     
                    Exit Sub
     
                End If
     
            End If
     
        Next I
     
        'enregistre une copie dans le sous-dossier avec le nom du client
        ThisWorkbook.SaveCopyAs Dossier & "\" & DosClient & "\" & DosMachine & "\" & DosIntervention & "\" & DosClient & ".xls"
     
    End Sub
    Hervé.

    Oups, petite erreur ici, la base de la fonction Split est 0 alors que mon tableau est 1 donc, à remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox "Erreur lors de la création du dossier '" & Split(Tbl(I), "\")(I) & "' !"
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox "Erreur lors de la création du dossier '" & Split(Tbl(I), "\")(I - 1) & "' !"
    Hervé.

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    mais non fait évoluer ta variable Chemin en y concaténant ( avec l'opérateur & ) la valeur de ta cellule E4 , ne repart pas de Thisworkbook.path...

  10. #10
    Futur Membre du Club
    Homme Profil pro
    mécanique engin de TP
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : mécanique engin de TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Hervé merci a toi j'ai coller ton code mais rien ne se passe..., Bbil merci aussi,

    je vais continuer en début d’après midi

    merci bien encore et bon apetit a vous tous

    François

  11. #11
    Futur Membre du Club
    Homme Profil pro
    mécanique engin de TP
    Inscrit en
    Mars 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : mécanique engin de TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2012
    Messages : 18
    Points : 8
    Points
    8
    Par défaut Merci Hervé
    Hervé par ta solution mon problème est résolu, un très grand merci
    Merci aussi à toi Bbil pour tes réponses.

    bonne continuation à vous tous

    François

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/06/2009, 17h38
  2. Réponses: 2
    Dernier message: 21/06/2007, 09h07
  3. Réponses: 7
    Dernier message: 19/06/2007, 15h55
  4. Scan d'un repertoire et sous repertoires
    Par Malone dans le forum Langage
    Réponses: 6
    Dernier message: 08/08/2005, 13h03

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