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

Excel Discussion :

Remplir un fichier excel à partir d'autres fichiers excel


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Remplir un fichier excel à partir d'autres fichiers excel
    Bonjour,

    Bonjour, je me présente je m'appelle Sébastien LASSALLE j'ai 20 ans je suis étudiant et actuellement en stage dans un bureau d'étude thermique. Je suis confronté à un problème. En effet, mon objectif est de réaliser un modèle Excel qui sera utilisé pour une multitude d'études de faisabilités mais je dois pouvoir rendre automatique le remplissage de ce modèle à partir de fichiers résultats. Ces fichiers résultats sont 10 fichiers qui portent un nom différent et sont constitués d'un tableau placé exactement au même endroit sur chaque classeur, seules les valeurs changent.

    Mon problème est le suivant : Je rempli un grand tableau dans mon modèle à l'laide des autres classeurs, mais le problème est que ces 10 fichiers ne vont jamais avoir le même chemin d'accès vu que le modèle que je met en place va servir d'outil pour tout le monde. Alors je suis bloqué, est-ce possible de demander à excel d'aller chercher dans le dossier du document modèle, les autres classeurs ? Je ne sais pas comment faire.

    Je ne sais pas si j'ai été suffisement clair pour expliciter mon problème.

    J'espère que quelqu'un saura m'éclairer sur la question.

    Très cordialement,

    L.Sébastien

  2. #2
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut
    Bonjour Sébastien LASSALLE,

    aller chercher dans le dossier du document modèle
    Si ton document modèle est le fichier excle à partir d'où tu lance ta macro, tu peux tenter ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim MonRepertoire as string
    MonRepertoire = ThisWorkbook.Path
    Si tu veux proposer à l'utilisateur de choisir un dossier
    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
    Sub test()
     ' Attention le "\" à la fin de la ligne de commande est essentiel.
    Dim MonRepertoire as string   
       MonRepertoire = SelDossier("c:\")
    End Sub
     
    Function SelDossier(Defaut As String)
    'd'après "Nicolas", mpfe
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    With fd
        .InitialFileName = Defaut
        If .Show = -1 Then
            SelDossier = fd.SelectedItems(1)
        End If
    End With
    Set fd = Nothing
    End Function
    a+

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Tout d'abord merci pour votre réponse, je suis débutant dans le langage, auriez vous le temps nécessaire à m'expliquer brievement la signification des lignes de codes ou du moins leurs buts. Je ne comprend pas tout ce que vous avez écrit ici.

    Cordialement,

  4. #4
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut
    Re bonjour,

    pour la 1ere Solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim MonRepertoire as string '--> ici tu déclare une variable (MonRepertoire ) et tu dis qu
    MonRepertoire = ThisWorkbook.Path '--> ThisWorkbook en français: ce classeur ; Path en français: chemin (adresse du répertoire;exemple  C:\Users\toto\Desktop)
                                      '-->  donc ma variable appelée MonRepertoire = au chemin d’accès du fichier excel
    ensuite si tu veux récupérer l'adresse des fichiers de ce répertoire:
    Si tu connais leurs petits noms
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Fichier1 as string '--> tu déclare une variable
    Fichier1 = MonRepertoire & "\Fichier1.xlsx" '-> C:\Users\toto\Desktop\Fichier1.xlsx
    Dim Fichier2 as string
    Fichier1 = MonRepertoire & "\Fichier2.xlsx"
    .....
    Si tu ne connais pas leurs noms:
    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
    Sub ListeFichier()
    Const ctePourLecture = 1
    Const ctePourEcrire = 2
    Const ctePourAjouter = 8
     
    Dim objFSO, objDossier
    Dim MonRepertoire As String
    Dim MonResultat() As String
        On Error Resume Next
     
        MonRepertoire = ThisWorkbook.Path
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objDossier = objFSO.GetFolder(MonRepertoire) '--> scrute le dossier mon repertoire
        ReDim MonResultat(0)
        If (objDossier.Files.Count > 0) Then
            For Each objFichier In objDossier.Files '--> pour chaque fichier de le dossier
                If (InStr(1, objFichier.Name, ".xls", 1) > 0) Then
                    MonResultat(UBound(MonResultat)) = objFichier.Path '--> tu incrémente un tableau avec le chemin de tous les fichier .xls
                    ReDim Preserve MonResultat(1 + UBound(MonResultat)) '--> tu ajout un rang à ton tableau
                End If
            Next
        End If
     
        ReDim Preserve MonResultat(UBound(MonResultat) - 1)
     
        objResultat.Close
        Set objDossier = Nothing
        Set objFSO = Nothing
     
    End Sub
    quoi qu'il en soit, n’hésites pas à mettre de espions ou des debug.print dans tes codes
    cf tuto: (IV-C. Les espions)
    http://cafeine.developpez.com/access...ugprint/#LIV-C

    la touche F1 et google sont tes amis


    a+

  5. #5
    Membre actif Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 171
    Points : 276
    Points
    276
    Par défaut
    pour la 2eme solution, elle se déroule en 2 temps
    1 la procédure principale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
     ' Attention le "\" à la fin de la ligne de commande est essentiel.
    Dim MonRepertoire As String
       MonRepertoire = SelDossier("c:\") ' appelle la fonction SelDossier
    End Sub
    2 La fonction SelDossier appelée dans la procédure principale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function SelDossier(Defaut As String)
    Dim fd As FileDialog
        Set fd = Application.FileDialog(msoFileDialogFolderPicker) 'fd = boite de dialogue
        With fd
            .InitialFileName = Defaut 'nom de fd = Defaut (comme dans les parametre de windows)
            If .Show = -1 Then
                SelDossier = fd.SelectedItems(1)  'SelDossier = le dossier choisi par l'utilisateur
            End If
        End With
        Set fd = Nothing
    End Function
    à toi de jouer

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/03/2013, 08h39
  2. Remplir une table SAS à partir d'un fichier excel
    Par aminao dans le forum SAS Base
    Réponses: 7
    Dernier message: 10/01/2012, 16h49
  3. [XL-2007] Plantage excel à la fermeture du fichier avec macro si autre fichier excel ouvert
    Par Systémicien dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/03/2011, 09h00
  4. Appeler un fichier DTD à partir un autre fichier DTD
    Par commande dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 01/05/2009, 18h11
  5. Réponses: 5
    Dernier message: 24/02/2009, 09h05

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