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 :

analyse et lecture de nouveau sous-repertoire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien lean
    Inscrit en
    Avril 2011
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien lean
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 220
    Par défaut analyse et lecture de nouveau sous-repertoire
    Bonjour à tous,

    Je vous contact du fait que j'ai besoin de votre aide pour une création de macro concernant des comparaison de nom de repertoires

    Je sais pas si ce sujet a déjà été evoqué sur ce forum, si besoin n'hesitez pas à me dirigé vers la bonne discution

    Pour mon travail, je voudrais mettre en place une programmation qui compare des noms de répertoire (mais pas de fichiers)en vba excel.

    J'ai un fichier qui contient une liste de répertoire différente en colonne B (100 référcence)

    Mon besoin est de lire l'adresse du repertoire se trouvant en colonne B et m'indiquer en colonne C le nom du dernier " sous repertoire" créé avec la date de création en colonne D.

    Cela à pour but, de mettre à jour un autre fichier avec des référence plus facilement.

    Est-ce que quelqu'un pourrais m'aider?

    Je vous remercie

  2. #2
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 324
    Par défaut
    Bonjour

    en VBA je ne sais pas faire mais avec Power Query c'est très facile avec la fonction Folder.Contents

    A partir d'un paramètre nommé "Dossier" le code suivant vous donne la liste des sous-dossiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table.SelectRows(Folder.Contents(Dossier),each _[Attributes][Directory])
    Folder.Contents renvoie la liste des dossiers et des fichiers, le Table.SelectRows (... each _[Attributes][Directory]) filtre alors uniquement sur les dossiers

    il faut ensuite sélectionner "le plus récent" (choix dans la liste des filtres qui va générer automatiquement le code let latest = List.Max(Source[Date created]) in each [Date created] = latest)

    clic droit sur la requête pour transformer la requête en fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let
        Source = (Dossier as text) => let
            Source = Table.SelectRows(Folder.Contents(Dossier),each _[Attributes][Directory]),
            #"Lignes filtrées1" = Table.SelectRows(Source, let latest = List.Max(Source[Date created]) in each [Date created] = latest),
            #"Autres colonnes supprimées" = Table.SelectColumns(#"Lignes filtrées1",{"Name", "Date created"})
        in
            #"Autres colonnes supprimées"
    in
        Source
    Il ne reste plus qu'à appliquer cette fonction à la liste de dossiers pour obtenir le résultat souhaité

    A dispo pour plus de précision au besoin.

    Stéphane

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien lean
    Inscrit en
    Avril 2011
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien lean
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 220
    Par défaut
    Merci Stephane pour ton retour.

    Le mieux pour moi serait en VBA, quelqu'un peut m'aider?

  4. #4
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 039
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 039
    Par défaut
    Citation Envoyé par maximilien59 Voir le message
    Le mieux pour moi serait en VBA, quelqu'un peut m'aider?
    Bonjour.
    Je n'ai pas mon PC sur moi pour vous donner un code, mais vous trouverez au chapitre 21 du tome 1 (voir ma signature : mémento sur la pragrammation en VBA pour Excel) un exemple de procédure récursive pour analyser les répertoires et sous répertoires.
    Ça peut donner des idées.
    Cordialement

Discussions similaires

  1. [FLASH MX2004] Classes dans sous-répertoires
    Par tomperso dans le forum Flash
    Réponses: 4
    Dernier message: 31/08/2006, 23h13
  2. Scan d'un repertoire et sous repertoires
    Par Malone dans le forum Langage
    Réponses: 6
    Dernier message: 08/08/2005, 13h03
  3. probleme lors de l'analyse d'un flux xml sous asp
    Par jlassira dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/07/2005, 14h01
  4. Erreur de lecture du flux sous SQLServer
    Par smazaudi dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/03/2005, 14h30
  5. Compter le nombre de sous-repertoires
    Par n00bi dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2004, 12h11

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