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 :

Copier des données de plusieurs classeurs sur une feuille récap [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut Copier des données de plusieurs classeurs sur une feuille récap
    Bonjour,

    J'ai des fichiers de pointage horaire par salarié : AGI, FBA, CTE...Etc. Ces fichiers sont composés de 12 onglets pour les 12 mois de travail.

    J'aimerais copier la plage de cellule C14:AG29 qui correspond aux heures facturablesn de l'onglet Janv. de tous les fichiers de pointage des salariés sur un nouveau classeur.

    J'ai commencé grâce à un code trouvé sur le forum mais ça ne donne rien de concluant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub export()
     
     
    Workbooks.Open Filename:= _
    "m:/Pointage en cours/Pointages 2011/AGI.xls"
     
    ThisWorkbook.Sheets("Recap H fact").Range("A1:AE1") = Workbooks("AGI.xls").Worksheets("Janv.").Range("C14:AG29").Value
     
     
    End Sub
    Je veux bien un peu d'aide s'il vous plait.

  2. #2
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2011
    Messages : 27
    Points : 40
    Points
    40
    Par défaut
    bonjour,

    essaye comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ThisWorkbook.Sheets("Recap H fact").Range("A1:AE1").Copy Workbooks("AGI.xls").Worksheets("Janv.").Range("C14:AG29").Value

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Salut,

    Merci de ton aide mais malheureusement ça me met le message erreur d'execution 9 : l'indice n'appartient pas à la selection.

  4. #4
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    sur ton code ce message peu être du à erreur sur un nom de feuille ("Recap H fact" ou "Janv." par exemple...) ou sur le nom du classeur (si par exemple le classeur AGI.xls n'est pas ouvert..)


    voici un code qui enchaine l'ouverture du classeur et la copie à la ligne donnée en paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub LanceCopie()
        CopieClasseur "m:\Pointage en cours\Pointages 2011\AGI.xls", 1 ' PS : le / c'est pour les linuxiens !
     
    End Sub
    '
    ' Récupère onglet Janvier
    '
    Sub CopieClasseur(stName As String, iLigne As Integer)
    Dim wk As Workbook
        Set wk = Workbooks.Open(stName, , True) 'ouverture du classeur en lecture seule
        wk.Sheets("janv.").Range("C14:AG29").Copy ThisWorkbook.Sheets("Recap H").Cells(iLigne, 1)
        wk.Close
    End Sub

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Super ça marche merci beaucoup

    Par contre je pensais pouvoir refaire cette macro pour les autres fichiers en les copiant à la suite les uns des autres.

    J'ai essayé de mettre .End(xlDown).Row+1 derrière Cells(iLigne, 1) mais il me dit que la méthode copie de la classe Range a échoué.

    Je pense que c'est à cause du iLigne, vu que d'habitude j'utilise ça pour des copies de cellule.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Copier des données depuis plusieurs classeurs vers un classeur de Recap
    Par bdel1724 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/11/2014, 20h14
  2. [XL-2010] Importer des données de plusieurs fichiers dans une feuille excel en VBA
    Par Alibel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2013, 15h16
  3. [XL-2003] copier des données d'un classeur à un autre à l'aide d'une macro
    Par tottiasr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2011, 14h19
  4. [VBA-E] Copier des données d'un tableau a une feuille
    Par KKshi666 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/04/2007, 14h09
  5. Réponses: 9
    Dernier message: 04/04/2007, 11h16

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