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 :

Récupérer un/des nom(s) de fichier [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Par défaut Récupérer un/des nom(s) de fichier
    Bonjour à toutes et à tous,
    je me retrouve coincé dans le développement de mon projet. Je dois créer une macro qui concatène des .DBF enregistrés dans un dossier.

    Le premier problème est que l'on ne connait pas leur nom.
    Le second est qu'il peut y avoir d'autres .DBF dans le dossier qu'il ne faut pas concaténer avec les premiers.

    Les fichiers à concaténer entre eux ont les 4 premières lettres de leur nom identiques.(Quand je dis que d'autres .DBF sont dans le dossier ce sont d'autres .DBF à concaténer entre eux ultérieurement, ils ont donc aussi les 4 premières lettres de leur nom fichier en commun)

    Pour être clair, nous avons 2 familles de fichier : [NOM1]*.DBF et [NOM2]*.DBF


    Il faudrait avant de concaténer, compter le nombre de fichiers portant les mêmes 4 premières lettres et si ce nombre est égal à celui passé en paramètre de la procedure alors on les concatène dans un nouveau fichier .xls dont le nom est passé en paramètre. ( le nombre de fichier necessaire pour la concaténation est le même pour les 2 familles de fichiers)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub Concatener(Chemin As String,NomFicRes As String,NombreFicReq As Integer)
    Chemin indiquant le répertoire dans lequel on effectue la recherche.
    NomFicRes indiquant le nom du fichier résultant de la contènation.
    Nombre de Fichier necessaire pour faire la concatènation.

    N'hésitez pas si vous avez besoin de plus d'information.

    Cordialement Jason T.

  2. #2
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Bonjour,

    pour parcourir un dossier, utilise la fonction "dir" (F1 pour savoir utiliser )

    Pour comparer les 4 premières lettres utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcomp("abcd", left(nom_du_fichier, 4),vbtextcompare)
    Cela devrait t'aider à commencer.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Sinon, tu peux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub recherche()
        With Application.FileSearch
            .NewSearch
            .RefreshScopes
            .LookIn = "C:\" 'Ton répertoire
            .Filename = "*.DBF"
            .SearchSubFolders = True 'Cherche dans les sous-répertoires !
            .Execute
            For Ctr = 1 To .FoundFiles.Count
                'Tu fais ce que tu veux 
            Next
        End With
    End Sub
    Ton premier problème est donc réglé par Pour ton deuxième problème, tu le règles ici :
    'Tu fais ce que tu veux
    En gros, tu fais un Left(.FoundFiles(Ctr),4) pour obtenir les 4 premières lettres du nom de chacun de tes fichiers. Après, c'est juste une histoire de comparaison. Tu testes à chaque fois ce que ça te donne et si c'est égal aux 4 premières lettres d'autres fichiers, tu concatènes.

    Pour compter le nombre de fichiers ayant les 4 mêmes premières lettres, tu fais un test sur ces 4 premières lettres et si elles sont équivalentes à ce que tu souhaites (l'histoire de tes paramètres que je n'ai pas bien comprise) alors tu incrémentes un compteur.

    Reviens-nous voir si tu n'y arrives pas mais avec un code et quelques explications (exemples) supplémentaires sur l'histoire des paramètres.

    A+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/03/2013, 22h52
  2. Récupérer espace de nom d'un fichier
    Par Steph0 dans le forum Langage
    Réponses: 6
    Dernier message: 24/05/2012, 16h34
  3. Supprimer caractère des noms de plusieurs fichiers
    Par Jaymerry dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 14/10/2011, 11h54
  4. Réponses: 5
    Dernier message: 02/09/2009, 12h34
  5. modifier des nom de plusieurs fichiers
    Par Daron10 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 18/08/2009, 17h44

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