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 :

Objet Scripting.FileSystemObject pour recuperer le nom du folder


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 tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Objet Scripting.FileSystemObject pour recuperer le nom du folder
    Rebonjour, Je cherche a selectionner, aller dans le sous dossier le plus recent, c'est a dire finalement le dernier. Dans ma feuille le range nommé "Link_Folder" est un lien vers ce folder , puis dans ce folder , j'ai des folder yyyymmdd qui contiennent des workbooks. Mon idee est donc d'y aller de selectionner le nombre( ca c'est bon) et puis le le nom pour ensuite y aller (ca je saurais y aller) mais la mon code me sort une erreur aparement le nom c'est pas possible ..



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test1234()
        'lien fixe
        Dim NbF As Integer
        Dim Nom As String
        Dim Folder As Folder
        Dim folderPath As New Scripting.FileSystemObject
        NbF = folderPath.GetFolder(ThisWorkbook.Worksheets("DB").Range("Link_Folder")).SubFolders.Count
        Nom = folderPath.GetFolder(ThisWorkbook.Worksheets("DB").Range("Link_Folder")).SubFolders(NbF).Name
     
     
    End Sub

  2. #2
    Expert éminent


    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
    Par défaut
    Bonsoir,


    Citation Envoyé par tamtam64 Voir le message
    ....mais la mon code me sort une erreur ...
    cela aurais été bien de lire le message d'erreur !



    ensuite pense aussi que les index d'une collection commencent à 0 ..

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test1234()
        'lien fixe
        Dim NbF As Integer
        Dim Nom As String
        Dim Folder As Variant
        Dim folderPath As New Scripting.FileSystemObject
        NbF = folderPath.GetFolder(ThisWorkbook.Worksheets("DB").Range("Link_Folder")).SubFolders.Count
       Set Folder = folderPath.GetFolder(ThisWorkbook.Worksheets("DB").Range("Link_Folder")).SubFolders
    Next Folder
    End Sub
    erreur d'execution 5

    Argument ou appel de procedure incorrect

    Oui Oui j'ai essayé tout ce que je pouvais avant de poster , c'est a dire un autre indice , et quand je met un espion on me donne bien les item et le nom , en tipe variant , donc j'ai essayé en mettant en variant mais ca ne marche pas .... c'est vraiment bizarre.

  4. #4
    Expert éminent


    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
    Par défaut
    a oui ... tu dois utiliser For Each :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For Each Folder In folderPath.GetFolder(ThisWorkbook.Worksheets("Feuil1").Range("A29")).SubFolders
            Nom = Folder.Name
        Next

  5. #5
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Oui mais ...
    Oui mais moi je ne veux pas parcourir tous les dossiers , je souhaiterais juste prendre le nom du dernier.
    Et aparement avec item on pourrait le faire sauf que ca ne marche pas du tt .

    Je ne trouve pas la solution meme avec l'espion.

  6. #6
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Bon bin je contourne le probleme
    Malheureusement , je pense que ce n'est pas possible , je recherche meme sur des sites anglais , apparement c'est pas possible
    donc j'ai trouvé une autre solution mais bon c'est pas super mais je la communique pour ceux que ca interesse.

    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
    Sub test1234()
        'lien fixe
        Dim NbF As Integer
        Dim Nom As String
        Dim Folders As Folders
        Dim MyFolder As Folder
        Dim Lien As String
        Dim i As Long
        Dim folderPath As New Scripting.FileSystemObject
        NbF = folderPath.GetFolder(ThisWorkbook.Worksheets("DB").Range("Link_Folder")).SubFolders.Count
       Set Folders = folderPath.GetFolder(ThisWorkbook.Worksheets("DB").Range("Link_Folder")).SubFolders
       For Each MyFolder In Folders
        i = i + 1
            If i = NbF Then
            Nom = MyFolder.Name
            End If
       Next MyFolder
       Lien = folderPath.GetFolder(ThisWorkbook.Worksheets("DB").Range("Link_Folder") & Nom).Path
    End Sub
    Voila, je recupere bien le dossier le plus recent, c'est a dire le dernier , puisque les noms des fichiers est une date yyyymmdd

    je clos le sujet demain au cas ou quelqu'un veuille rajouter une idee.

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

Discussions similaires

  1. Question sur l'objet Scripting.FileSystemObject
    Par arnaud_matard dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/08/2008, 14h00
  2. Réponses: 2
    Dernier message: 08/08/2007, 08h57
  3. cherche scripts whois pour vérification de nom de domaine
    Par casaoui-web dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 17/04/2007, 15h28
  4. Réponses: 1
    Dernier message: 06/12/2006, 15h24

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