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 :

Extraire le contenu d'une cellule nommée dans d'autres fichiers Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Extraire le contenu d'une cellule nommée dans d'autres fichiers Excel
    Bonjour,

    Je viens vers vous car je recherche une macro pourra me faire le travail ci-dessous.

    J’ai 3 fichiers Excel nommés A1-B2-1100, A1-B2-1200, A1-B2-1300, qui contiennent une cellule nommée DISTANCE_METRE (la position de la cellule est différente dans chaque fichier) . Ces fichiers Excel sont contenus dans le dossier "B2" qui lui est dans un dossier "A1" et le tout dans un dossier "etu" (dossier zippé en pièce jointe).

    J’ai un autre fichier Excel nommé "Extraction" qui possède 3 lignes et 2 colonnes. Dans la première colonne nous avons les 3 lignes A1-B2-1100, A1-B2-1200, A1-B2-1300 et dans la deuxième colonne avec pour titre "DISTANCE en mètre" nous avons les cellules vides ( à remplir justement) .


    Alors ce que j'aimerais c'est d'avoir une macro dans le fichier Excel "Extraction" qui ira chercher le contenu de la cellule "DISTANCE_METTRE" dans les autres fichiers Excel et la mettra dans les cellules correspondantes de la colonne "DISTANCE en mètre".

    J’espère avoir bien expliqué mon problème et pouvoir trouver une solution grâce à vous. Merci d'avance pour vos réponses.

    Macros.zip

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

    Informations professionnelles :
    Activité : salarié

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

    Une méthode parmi tant d'autres. Code à placer dans le fichier Extraction qui, par conséquent, deviendra Extraction.xlsm :

    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
    Sub Macro1()
    Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
    Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
    Dim CA As String 'déclare la variable CA (Chemin d'accès)
    Dim CS As Workbook 'déclare la variable CS (Classeur Source)
    Dim OS As Worksheet 'déclare la variable OD (Onglet Source)
    Dim F As String 'déclare la variable F (Fichier)
    Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
     
    Set CD = ThisWorkbook 'définit le classeur destination CD
    Set OD = CD.Worksheets("Feuil1") 'définit l'ongletdestination OD
    CA = CD.Path & "\etu\A1\B2\" 'définit le chemin d'accès CA
    F = Dir(CA & "*.xlsx") 'définit le nom du fichier .xlsx F ayant CA comme chenin d'accès
    Do While F <> "" 'bouce tatnt qu'il existe des fichiers
        Set CS = Application.Workbooks.Open(CA & F) 'définit le classeur source CS en l'ouvrant
        Set OS = CS.Worksheets(1) 'définit l'onglet source OS
        'définit la cellule de destination DEST en fonction du nom du classeur source (sans l'extension)
        Set DEST = OD.Columns(2).Find(Split(CS.Name, ".")(0), , xlValues, xlWhole).Offset(0, 1)
        DEST.Value = OS.Range("DISTANCE_METRE") 'récupère la valeur de la plage nommée "DISTANCE_METRE"
        CS.Close False 'ferme le classeur source sans enregistrer
        F = Dir 'définit le prochain fichier .xlsx F aynat CA comme chemin d'accès
    Loop 'boucle
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Respect!
    Bonjour Thauthème

    un Grand merci pour ta réponse ça marche ça marche et ça marche!!!! tu es un génie !

  4. #4
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2019
    Messages : 6
    Points : 4
    Points
    4
    Par défaut recherche d'une Macro importation des données.
    Bonjour,

    je viens vers vous pour trouver une solution à mon problème de macros.

    j'ai 2 classeurs dans un même dossier. le premier classeur est nommé " Classe" et le deuxième classeur est nommé "sélection" ( classeurs ci-joints).

    je voudrais une macro dans le classeur "sélection" qui ouvre le classeur "classe", ensuite va chercher l'onglet au même nom que l'onglet actif du classeur "sélection", puis remplis la colonne D du classeur "sélection" en fonction des informations de la colonne C de ce classeur "sélection", boucle jusqu'à la fin puis s'arrête. ferme le classeur "classe" sans enregistrer.

    par exemple dans mon classeur "sélection" j'active la cellule 5 de la colonne D correspondant à l'âge de Jean. je click sur ma macro (bouton qui contiendra la macro), la macro va chercher le classeur "Classe" ensuite l'ouvre, puis cherche l'ongle "Classe C" (correspondant au nom de l'ongle actif sur mon classeur "sélection") puis chercher l'âge de jean dans le classeur " classe" ( jean qui correspond à l'information de la colonne C, de la même ligne que la cellule active dans le classeur "sélection) puis le range dans la cellule active du classeur "sélection" et passe à la ligne suivante ( âge de Paul) et recommence le même travail. Ainsi de suite jusqu'à la fin du tableau.

    je vous remercie pour avoir pris du temps de lire ma demande et si possible d'avoir apporté une réponse.

    Bien à vous demande info_VBA.zip

Discussions similaires

  1. [XL-2016] Copier suite de cellules nommées vers un autre fichier Excel
    Par Exolide dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/10/2018, 18h03
  2. Réponses: 15
    Dernier message: 25/11/2016, 12h49
  3. [XL-2010] Appeler la valeur d'une cellule nommée d'un autre fichier ?
    Par Sandra_R dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 02/12/2015, 13h00
  4. Réponses: 2
    Dernier message: 27/06/2014, 18h24
  5. Extraire le contenu d'une cellule dans un fichier excel
    Par JuniorBI dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 28/09/2010, 12h03

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