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 :

Intégrer données de plusieurs classeurs et plusieurs feuilles dans un seul - Problème nom de fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    medecin
    Inscrit en
    Octobre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : medecin
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2018
    Messages : 1
    Par défaut Intégrer données de plusieurs classeurs et plusieurs feuilles dans un seul - Problème nom de fichier
    Bonjour à tous

    J'ai vu que des discussions avaient déjà été ouvertes sur des sujets similaires, mais après quelques heures à essayer de m'en sortir seul, j'abdique et je tente la demande d'entre-aide.

    J'ai un dossier contenant des fichiers Excel qui sont remplis par des individus (réponses à des questionnaires) que je cherche à regrouper en un seul fichier type BDD (les questionnaires sont sur plusieurs feuilles, mais tous les fichiers sont identiques dans leur structure par contre, et même dossier).

    J'ai besoin que dans la première colonne de mon fichier BDD apparaisse le nom du fichier. J'ai tenté de le faire dans la macro suivante, mais ça ne marche pas. Je n’ai pas de l’utiliser la bonne formule.

    J'aimerais aussi pouvoir copier / coller-transposer (uniquement les valeurs) à la suite du premier coller les résultats des feuilles suivantes, mais là aussi je n'arrive pas à coder correctement.

    Je vous mets l'exemple de mon fichier source et de mon fichier base de données et le code que j'ai tenté d'écrire.

    Merci énormément pour votre aide et vos conseils.

    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
     
    Sub Extraire()
     
    Application.ScreenUpdating = False
     
    Dim Fichier As String
    Dim Chemin As String
    Dim ClasseurSource As Workbook
    Dim valeur1 As String
     
     
     
    valeur1 = ThisWorkbook.Worksheets("Synth").Range("A1").Value
    Chemin = "C:\Users\...\questionnaire adulte complémentaire\" & valeur1 & "\" 'Chemin du répertoire contenant les fichiers
    Fichier = Dir(Chemin & "Cotation autoquestionnaire complementaire*.xlsx")
     
    Do While Fichier <> ""
        Set ClasseurSource = Workbooks.Open(Chemin & Fichier)
    [ATTACH]418477[/ATTACH][ATTACH]418478[/ATTACH]
         ClasseurSource.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Insert = "nom de fichier"
     
        ClasseurSource.Worksheets("YFAS 2").Range("D2:D89").Copy
        ThisWorkbook.Worksheets("Synth").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=True
     
     
     ClasseurSource.Close
     Fichier = Dir
    Loop
     
    End Sub

    Merci de votre aide
    NB : j'ai aussi un petit souci sous Mac, il ne trouve pas le lien vers mon dossier, y'a une subtilité que je n'ai pas du saisir

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    N'ayant pas ouvert tes fichiers joints (entre autre pour les raisons expliquées ici https://www.developpez.net/forums/d8...s-discussions/ ), je n'ai pas compris toutes tes explications.

    J'ai quand même vu ça qui pique les yeux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         ClasseurSource.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Insert = "nom de fichier"
    Tu aurais dû au moins consulter l'aide VBA sur la méthode Insert.

    Je pense (sans certitude) que ceci correspondra mieux à ce que tu souhaites.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = ActiveWorkbook.Name
    NB : j'ai aussi un petit souci sous Mac, il ne trouve pas le lien vers mon dossier, y'a une subtilité que je n'ai pas du saisir
    C'est normal puisque sur Mac les structures des chemins (en particulier les séparateurs) ne sont pas les mêmes.

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Peut-être 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
    Sub Extraire()
    Dim CD As Workbook
    Dim OD As Worksheet
    Dim CS As Workbook
    Dim OS As Worksheet
    Dim Fichier As String
    Dim Chemin As String
    Dim valeur1 As String
    Dim DEST As Range
     
    Application.ScreenUpdating = False
    Set CD = ThisWorkbook
    Set OD = CD.Worksheets("Synth")
    valeur1 = OD.Range("A1").Value
    Chemin = "C:\Users\...\questionnaire adulte complŽmentaire\" & valeur1 & "\" 'Chemin du rŽpertoire contenant les fichiers
    Fichier = Dir(Chemin & "Cotation autoquestionnaire complementaire*.xlsx")
    Do While Fichier <> ""
        Set CS = Workbooks.Open(Chemin & Fichier)
        Set OS = CS.Worksheets("YFAS 2")
        Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)
        DEST.Value = CS.Name
        DEST.Offset(0, 1).Resize(1, 88).Value = Application.Transpose(OS.Range("D2:D89"))
        CS.Close False
        Fichier = Dir
    Loop
    End Sub

Discussions similaires

  1. [XL-2010] Regrouper données plusieurs feuilles dans une seule feuille
    Par Ysae68 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/11/2017, 13h20
  2. imprimer plusieurs plages d'une feuille dans un seul fichier pdf
    Par xica19 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/08/2017, 13h13
  3. Réponses: 0
    Dernier message: 05/04/2017, 13h07
  4. [XL-2007] Copier des données de plusieurs classeurs sur une feuille récap
    Par chipster008 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2011, 11h12
  5. import de données de plusieurs feuilles dans une seule
    Par naevus dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 10/01/2008, 13h32

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