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

VBA Access Discussion :

Personaliser le fichier de destination d'une extraction VBA (MkDir)


Sujet :

VBA Access

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 50
    Par défaut Personaliser le fichier de destination d'une extraction VBA (MkDir)
    Bonsoir,

    Je sollicite à nouveau les membres de ce forum pour un petit soucis technique.
    Un membre de ce forum m'avait écrit du code pour réaliser ce que je souhaitais, à savoir créer un fichier de destination qui tenez compte d'un paramètre d'un recordset et comme je bouclais dessus le chemin était modifié systématiquement.

    J'aimerais rajouter dans le code ci-dessous au moins un sous-dossier en dur ou en macro-variable (il s'agit ici du dossier "Flux"). J'ai tenté de l'intégrer comme ci-dessous à la hussarde, en utilisant une macro-variable (esperluette) et même via un recordset , cependant à chaque fois mon code s'affiche en rouge et j'ai un message d'erreur.

    Je ne comprends pas du tout la logique, même les guillemets seuls ne fonctionnent pas. Ça m'embête sérieusement car ça m'obligerait à créer en dur un dossier pour chaque "Nom" avec mon sous dossier "Flux".

    Pouvez-vous me dire pourquoi cela ne fonctionne t-il pas? Quel syntaxe dois-je utiliser pour ajouter un sous-dossier en dur à mon chemin ?

    Merci d'avance,


    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
     If Dir("C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom"), vbDirectory) = "" Then
                MkDir "C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom")
            End If
     
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'CREATION DE MON SOUS DOSSIER FLUX  (le code s'affiche en rouge)
     
    If Dir("C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom")\Flux, vbDirectory) = "" Then
                MkDir "C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom")\Flux
            End If
     
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
     
            If Dir("C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom") & "\Flux\" & Format(DateMin, "YYYYMMDD") & "-" & Format(DateMax, "YYYYMMDD"), vbDirectory) = "" Then
                MkDir "C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom") & "\Flux\" & Format(DateMin, "YYYYMMDD") & "-" & Format(DateMax, "YYYYMMDD")
            End If
     
     
        ' Sauvegarde de la feuille Excel
            xlBook.SaveAs "C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom") & "\Flux\" & Format(DateMin, "YYYYMMDD") & "-" & Format(DateMax, "YYYYMMDD") & "\" & rec1.Fields("Nom") & "_" & Format(DateMin, "YYYYMMDD") & "-" & Format(DateMax, "YYYYMMDD") & ".xls"

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Essaie comme ça :
    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
    Dim sDossier As String
     
    ' Dossier de départ
    sDossier = "C:\Users\gk\Documents\TEST"
     
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'CREATION SOUS-DOSSIER NOM
    sDossier = sDossier & "\" & rec1.Fields("Nom")
    If Dir(sDossier, vbDirectory) = "" Then
        MkDir sDossier
    End If
     
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'CREATION SOUS-DOSSIER FLUX
    sDossier = sDossier & "\" & "Flux"
    If Dir(sDossier, vbDirectory) = "" Then
        MkDir sDossier
    End If
     
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'CREATION SOUS-DOSSIER YYYYMMDD-YYYYMMDD
    sDossier = sDossier & "\" & Format(DateMin, "YYYYMMDD") & "-" & Format(DateMax, "YYYYMMDD")
    If Dir(sDossier, vbDirectory) = "" Then
        MkDir sDossier
    End If
     
    ' Sauvegarde de la feuille Excel
    Debug.Print sDossier & "\" & rec1.Fields("Nom") & "_" & Format(DateMin, "YYYYMMDD") & "-" & Format(DateMax, "YYYYMMDD") & ".xls"
    J'ai écrit un peu différemment, en passant par une variable (sDossier), pour mieux visualiser la progression.
    Après la vérification de l'existence d'un sous-dossier, on rajoute le sous-dossier au chemin contenu dans la variable sDossier:
    C:\doss1\doss2\doss3
    C:\doss1\doss2\doss3\doss4
    C:\doss1\doss2\doss3\doss4\doss5
    etc...

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 50
    Par défaut OK
    Bonsoir LedZepII,

    Je viens de tester et ça fonctionne très bien. On gagne en visibilité c'est certains je vais quand même essayer de voir pourquoi ça ne marchait pas avant maintenant que je sais que ça doit fonctionner.

    Par contre j'ai conservé : le xlBook.SaveAs car avec le Debug.print , excel m'ouvre une boîte de dialogue me demandant si je veux enregistrer les modifications apporter au classeur?

    Merci beaucoup,

  4. #4
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Citation Envoyé par Antisthene Voir le message
    Par contre j'ai conservé : le xlBook.SaveAs car avec le Debug.print , excel m'ouvre une boîte de dialogue me demandant si je veux enregistrer les modifications apporter au classeur
    Pardon, j'ai fait une mauvaise manipulation de copier/coller.
    Le Debug.Print ne te sert à rien. C'était pour ma simulation.

    Concernant ton code d'origine.
    Il manquait des guillemets doubles ici, pour concaténer \Flux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Dir("C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom")\Flux, vbDirectory) = "" Then
                MkDir "C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom")\Flux
    End If
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Dir("C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom") & "\Flux", vbDirectory) = "" Then
                MkDir "C:\Users\gk\Documents\TEST\" & rec1.Fields("Nom") & "\Flux"
    End If
    A+

Discussions similaires

  1. Télécharger un fichier sur internet grâce à une macro VBA
    Par geotz dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 26/04/2015, 11h18
  2. Télécharger un fichier sur internet grâce à une macro VBA
    Par hupdhulu dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2014, 19h44
  3. Mise en forme d'un fichier txt après une extraction
    Par MCL04 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 04/07/2012, 23h16
  4. [Toutes versions] Traiter un fichier txt à partir d'une macro VBA Excel
    Par alaize dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2011, 15h25
  5. extraction en fichier plat (csv) d'une base oracle sous unix
    Par djfredou dans le forum Import/Export
    Réponses: 0
    Dernier message: 21/01/2010, 14h26

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