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 :

Prendre plage de cellule dans plusieurs classeurs excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Prendre plage de cellule dans plusieurs classeurs excel
    Bonjour,

    je souhaiterais récupérer la plage de cellule A1 B30 de plusieurs fichiers excel fils classé dans un répertoire. Je voudrais mettre ces plages de cellules les unes à la suite des autres dans l'onglet Feuil1 du classeur 1 qui est le classeur mère.
    De plus et si possible, le mieux serait de récupérer ces plages de cellules sans avoir à ouvrir les fichiers fils

    Sachant que je ne peux modifier les fichiers fils (il ne sont pas protéger ni rien par contre) et qu'il y en a de plus en plus.

    Dans l'attente de vous lire.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    quel est le nom où la position des feuilles contenant les données dans les classeurs fils?
    dans le cas où dans les classeurs fils la feuille contenant les données est en pemière position de tous les classeurs fils ça donne ceci:

    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 main()
    Dim rep$
    rep = "C:\Documents and Settings\Benjîle\Bureau\tr" 'répertoire contenant les fichiers
     
    'création de l'objet fso pemettant de manipuler les fichiers et les répertoires
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
     
     
    'on va génère un nouveau classeur pour y stocker les données
    Dim ws As Excel.Worksheet, wkdest As Excel.Workbook
    Set wkdest = Workbooks.Add
    Set ws = wkdest.Sheets(1) 'c'est la première feuille qui recevra les données
     
     
     
    'on parcourt les fichiers du répertoire
    Dim fil As Object, wk As Excel.Workbook, n#
    n = 0
    For Each fil In fso.GetFolder(rep).Files
        Set wk = Workbooks.Open(fil) 'ouverture du classeur contenant les données à récupérer
        wk.Sheets(1).Range("A1:B30").Copy Destination:=ws.Cells(30 * n + 1, 1) 'copier coller à destination du classeur wkdest
        wk.Close savechanges:=False 'fermeture du classeur contenant les données
        n = n + 1
    Next fil
    End Sub

Discussions similaires

  1. [XL-2007] Protection d'une plage de cellules dans une feuille excel
    Par blackstrange dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 25/06/2012, 11h26
  2. [XL-2007] Recherche valeur cellule dans plusieurs classeurs fermés
    Par Millenniums dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/04/2011, 20h32
  3. [XL-2000] Prendre cellule dans plusieurs classeurs excel
    Par flosauveur69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2010, 21h02
  4. Autoriser sélection d'une plage de cellule dans une feuille Excel
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/08/2008, 09h49
  5. reporter une cellule dans plusieurs feuilles excel
    Par tigdub1gal dans le forum Excel
    Réponses: 17
    Dernier message: 07/06/2007, 01h23

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