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 :

Probleme Code création dossier


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de jackborogar
    Homme Profil pro
    Etudiant Ingénierie Financière
    Inscrit en
    Avril 2012
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant Ingénierie Financière
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 290
    Points : 481
    Points
    481
    Par défaut Probleme Code création dossier
    Bonjour à tous,

    J'ai un problème avec ce bout de code qui sert à sauvegarder mon fichier. Il créer cependant des dossiers si ils n'ont pas été fait. (Dossier Par année et Dossier par mois, le fichier aura le nom du jour)
    Je sais ce qui bloque, c'est la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dossier = "Documents and Settings\x_tlevent\Mes documents\Enregistrer2\" & Format(Date, "yyyy") & "\" & Format(Date, "mm-yyyy")
    et plus particulièrement ce passage (car j'ai essayé en marquant "\Test" et ça fonctionne):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " & Format(Date, "yyyy") & "\" & Format(Date, "mm-yyyy")

    Voici mon code dans sa globalité:

    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
    Sub Sauvegarde()
    Dim Dossier As String, Fichier As String
     
    'Mémorise et vérifie les noms de dossier et fichier
    On Error GoTo CreerDossier
     
    With ActiveSheet
        Dossier = "Documents and Settings\x_tlevent\Mes documents\Enregistrer2\" & Format(Date, "yyyy") & "\" & Format(Date, "mm-yyyy")
        Fichier = "FUF " & Format(Date, "dd-mm-yyyy")
    End With
        If Trim(Dossier) = "" Then
        Exit Sub
        End If
     
        If Trim(Fichier) = "" Then
        Exit Sub
        End If
     
    CreerDossier:
     
    If Err.Number = 1004 Then
     
    'Création du dossier
     
        MkDir "C:\" & Dossier
     
    End If
     
    'Sauvegarde
     
     
     
    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs "C:\" & Dossier & "\" & Fichier & ".xls "
    Application.DisplayAlerts = True
    MsgBox ("Votre fichier a bien été enregistré")
     
     
    Exit Sub
     
     
     
    End Sub
    Merci de votre aide,

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    Je pense que le problème vient du fait que le MkDir doit créer 2 répertoires, celui de l'année et le suivant.
    Essaie de créer d'abord celui de l'année, puis celui en-dessous.

  3. #3
    Membre averti
    Homme Profil pro
    Ctrl Gestion
    Inscrit en
    Octobre 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ctrl Gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 177
    Points : 363
    Points
    363
    Par défaut
    Bonjour Jackborogar, le forum

    Je pense que ton problème vient du fait que tu essaye de créer un dossier et un sous-dossier en même temps. Si tu crée d'abord ton dossier Année et ensuite le sous dossier Mois, cela devrait fonctionner.

    voici mon code pour tester ton soucis et ça fonctionne

    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 creerdossier()
     
      Dim dtdate As Date, Dossier As String
      Dim intYear As Integer, strMonth As String
     
     
      dtdate = Cells(1, 1).Value
      intYear = CStr(Format(dtdate, "yyyy"))
      strMonth = CStr(Format(dtdate, "mmmm"))
     
      Dossier = "L:\Adrien\Toto\" & intYear
      MkDir Dossier
      Dossier = "L:\Adrien\Toto\" & intYear & "\" & strMonth
      MkDir Dossier
    End Sub
    Slts

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,
    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
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                                 (ByVal hwnd As Long, ByVal pszPath As String, ByVal lngsec As Long) As Long
     
    Option Explicit
    Dim Rep As Long
     
    Private Function CreationDossier(sDossier) As Long
        Rep = SHCreateDirectoryEx(0&, sDossier, 0&)
    End Function
     
    Sub Test()
    Dim sDossier As String
        sDossier = "C:\Documents and Settings\x_tlevent\Mes documents\Enregistrer2\" & Format(Date, "yyyy") & "\" & Format(Date, "mm")
        CreationDossier sDossier
    End Sub

  5. #5
    Membre confirmé Avatar de jackborogar
    Homme Profil pro
    Etudiant Ingénierie Financière
    Inscrit en
    Avril 2012
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant Ingénierie Financière
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 290
    Points : 481
    Points
    481
    Par défaut
    Merci à vous tous pour vos réponses.

    J'ai utilisé la méthode de kiki29, celle-ci étant propre, clair, peu de lignes et efficace.

    Voici mon code pour ceux à qui sa interesserait:

    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
    Sub Sauvegarde()
     
        On Error GoTo CreerDossier
     
        Dim sDossier As String
        sDossier = "C:\Documents and Settings\x_tlevent\Mes documents\Enregistrer2\" & Format(Date, "yyyy") & "\" & Format(Date, "mm")
     
        Fichier = "FUF " & Format(Date, "dd-mm-yyyy")
     
    CreerDossier:
        If Err.Number = 1004 Then
     
            CreationDossier sDossier
     
        End If
     
        Application.DisplayAlerts = False
        ThisWorkbook.SaveAs sDossier & "\" & Fichier & ".xls "
        Application.DisplayAlerts = True
        MsgBox ("Votre fichier a bien été enregistré")
     
        Exit Sub
     
    End Sub
    Bonne journée,

    Cdt

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

Discussions similaires

  1. probleme de cration de dossier
    Par la-breche dans le forum Windows XP
    Réponses: 2
    Dernier message: 26/05/2006, 17h05
  2. [VB.NET] Probleme de création d'une picturebox dans le code
    Par stringman62 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/02/2006, 16h56
  3. Probleme code asm dans .c
    Par sorry60 dans le forum C
    Réponses: 5
    Dernier message: 18/04/2005, 13h15
  4. [langage] probleme code
    Par louisis dans le forum Langage
    Réponses: 5
    Dernier message: 30/06/2004, 17h43
  5. Problemes de création en exécution
    Par popeyes dans le forum Composants VCL
    Réponses: 6
    Dernier message: 29/06/2004, 19h02

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