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 :

Importer une plage de donnees d'une feuille Excel d'un classeur ferme vers un classeur actif


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Par défaut Importer une plage de donnees d'une feuille Excel d'un classeur ferme vers un classeur actif
    Bonsoir a tous,

    Je dispose d'une feuille1 excel ouverte dans laquelle j'ai tous mes noms de classeur excel fermes. Aussi je souhaiterai avoir une Macro qui me permetterai d'importer une plage de cellules depuis une feuille nomee "Clac" qui se trouve respectivement dans chacun des classeurs excel ferme et les placer dans la feuille2 de mon classeur actif dans lequel se trouve la dite feuille1 contenant la liste des mes classeurs fermes.

    J'ai attaché un fichier resumant ce que je viens de d'ecrire, ci-dessus. En effet dans la colonne A de la feuille1 se trouve la liste de mes classeurs fermes avec le titre "Master". Surligne en jaune est un apercu de ce qU'on peut trouve dans la feuille "Calc" qui se trouve dans chaque classeur ferme "M.....".

    Le paramettre variable de la plage de cellules a importer et que le nombre d'items n'est jamais le meme. En effet il peut y avoir 1 item, comme il peut y avoir quelques centaines. Cependant en bas de chaque liste de pieces il y a une annotation "Total Ex Works" une des cellules de la colonne C de ma feuille "Calc".

    A chaque fois que la Macro importe une plage complete dans la feuille2 de mon classeur actif je souhaiterai qu'il y est 2 lignes qui separe, par exemple la premiere plage de la feuille "Calc" du classeur M20056 et la deuxieme plage de la feuille "Calc" du classeur M21536...etc. Ainsi le resultat final se trouvant dans la feuille2 de mon classeur actif affichera une cascade de donnees.

    J'espere que quelqu'un trouvera une reponse efficace a ma requette.

    Merci.

    Faysparts.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Par défaut Importer une plage de donnees d'une feuille Excel d'un classeur ferme vers un classeur actif
    Bonjour a tous,

    Voici un autre resume de ce que j'ai decrit precedement, en esperant que ca sera plus clair.

    Fichiers activf: G:\SALES\BU1 SPARE PARTS\PartsFinder.xlsm : Dans ce fichier se trouvent dans la colonne A de la feuille "Sheet1" les noms des fichiers fermes (ex: M22222, M21563...etc.). Aussi dans ce meme fichier se trouve la feuille "Sheet2" dans laquelle je souhaite superposer les plages importees du fichier ferme, ci-dessous.

    Fichiers fermes: G:\SALES\MASTER\[Mxxxxx.xlsm]

    Plage a importer: 'G:\SALES\MASTER\[Mxxxxx.xlsm]Calc'!$A$13:$J$... le numero de la ligne doit coninsider avec la valeur "Total Ex Works" dans la colonne C. En effet la valeur "Total Ex Works" n'est pas toujours dans la meme cellule de la colonne C car elle depend dun nombre d'items a chiffrer. Ainsi la plage peut aussi bien contenir une seule ligne (A13:J13), comme elle peut aussi bien contenir quelques centaines de lignes (A13:J256) suivant le nom du classeur/fichier nomme Mxxxx.xlsm dans le fichier actif PartsFinder.xlsm.


  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,


    ben tu ouvre le classeur tu copie les données et tu referme le classeur..

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Par défaut Importer une plage de donnees d'une feuille Excel d'un classeur ferme vers un classeur actif
    Bonjour Bbil,

    Merci. Cependant il n'y a pas qu'un seul fichier. En effet il peut y avoir un millier de fichiers a ouvrir, copier, coller et refermer.

    J'aimerai que cette operation puisse etre effectuee de maniere automatique a partir d'une liste de fichiers selectionnes dans mon fichier actif nomme PartsFinder.

    A suivre...

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Et donc .. tu connais déjà le code pour traiter ton 1° fichier ?

    si oui il ne te reste plus qu'as l'adapter en effectuant une boucle pour tous tes fichiers ...


    si Non .. ben commence déjà à écrire le code pour traiter 1 fichier ...!

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Par défaut
    Je ne sais pas comment faire une boucle.

    Voici le code pour mon premier fichiner:

    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 Macro3()
    '
    ' Macro3 Macro
    ' Import Calc sheet contents
    '
    ' Keyboard Shortcut: Ctrl+d
    '
        Sheets("Sheet1").Select
        Range("J5").Select
        ActiveCell.FormulaR1C1 = "M19761"
        Range("J6").Select
        Sheets("Sheet2").Select
        Range("A1").Select
        ActiveCell.FormulaR1C1 = "M19761"
        Range("A3").Select
    '------------------------------------
       ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
            False, NoHTMLFormatting:=True
    '----------------------------------------------
        Range("A9").Select
        Sheets("Sheet1").Select
        Range("J6").Select
    End Sub
    Ca bloque lorsque ca arrive a la partie en gras, ci-dessus. ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
    False, NoHTMLFormatting:=True

Discussions similaires

  1. [XL-2007] Copier une plage excel à partir d'un classeur fermé vers le classeur actif
    Par FrancisZheng dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 17/11/2015, 16h51
  2. Réponses: 3
    Dernier message: 23/06/2015, 14h42
  3. Extraire une feuille d'un classeur fermé vers un classeur ouvert
    Par Kutoh dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/08/2013, 11h23
  4. Réponses: 15
    Dernier message: 23/05/2013, 19h33
  5. comment editer les donnee d'une base de donnees dans une application xbap?
    Par sanaaafkir dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 19/05/2008, 16h26

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