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 le nom du fichier copié dans une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut Récupérer le nom du fichier copié dans une cellule
    Salut tout le monde,
    Est ce que quelqu'un sait comment faire avec du code VBA excel pour avoir le nom du fichier copié dans les cellules de la première colonne????

    Au fait, je copie plusieurs fichiers excel dans un seul et je voudrais avoir à chaque fois le nom du fichier copié dans la cellule de la première colonne.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Tu les copies comment ces données de différents fichiers, manuellement ou par VBA ?

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut
    Par vba.

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    donc...dans ton code tu spécifies quelque part le nom du fichier duquel tu vas extraire les données ?

    Montre ton code stp

  5. #5
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 17
    Par défaut
    Je spécifie le répertoire où sont stockés les fichiers excel à copier. Voici le code:
    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
    Sub Assemble()
    Dim CL1 As Workbook, CL2 As Workbook 'classeur
    Dim FL1 As Worksheet, FL2 As Worksheet 'feuille de calcul
    Dim Fich As Variant, i As Byte, j$, Rep$, k As Long
     
     
        'Répertoire des fichiers à copier
        Rep = "C:\Documents and Settings\Bureau\test\"
        j = "fich1.xls"
        NomFichier = ActiveWorkbook.Name
        Set CL1 = ThisWorkbook
     
        'Ajoute une feuille au classeur destiné à recevoir les données des autres classeurs
        CL1.Sheets.Add
        CL1.ActiveSheet.Name = "Cumul_Budget"
     
        Set FL1 = CL1.ActiveSheet 'Instance le la feuille
     
        'Crée le tableau des fichiers du répertoire
        Set Fich = application.FileSearch
     
        'Ouverture des fichiers du répertoire
        With Fich
            .LookIn = Rep
            .FileType = msoFileTypeExcelWorkbooks
            If .Execute(SortBy:=msoSortByFileName, _
                SortOrder:=msoSortOrderAscending) > 0 Then
                For i = 1 To .FoundFiles.Count
                    Set CL2 = Workbooks.Open(.FoundFiles(i))
                    DoEvents
     
                    'Parcours des feuilles de chaque classeur
                    For Each FL2 In CL2.Worksheets
     
                        'Dernière ligne où coller les données copiées dans FL2
                        NoLigne = FL1.Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1
    Et donc pas vraiment le fichier exactement car c'est une boucle.

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 1 To .FoundFiles.Count
                    Set CL2 = Workbooks.Open(.FoundFiles(i))
                    NomClasseur = CL2.Name
                    DoEvents
    NomClasseur contiendra...le nom du classeur

    Concernant la recherche de la dernière ligne, je te conseille de procéder autrement, SpecialCells(xlCellTypeLastCell) risque un jour de t'envoyer au fond de la cave.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NoLigne = FL1.Range("A65535").End(xlUp).Row + 1

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/01/2009, 20h31
  2. Récupérer un bout de fichier texte dans une variable
    Par killerman31 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 15/01/2009, 12h03
  3. Récupérer le nom du fichier source dans son source
    Par jeromechezgdf dans le forum C#
    Réponses: 2
    Dernier message: 18/07/2007, 16h34
  4. Récupérer le nom du fichier qui appelle une fonction
    Par DeezerD dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2007, 14h37
  5. importer les noms de fichiers html dans une table access
    Par abane badis dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 17h25

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