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 une plage de données d'un classeur excel X a un classeur excel Y


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Copier une plage de données d'un classeur excel X a un classeur excel Y
    Bonjour a tous,

    J'essaie de copier une plage de données d'un classeur excel X a un classeur excel Y. La plage de donnes du classeur X est toujours la même, cependant, dans le classeur Y, les cellules ou je vais coller la plage de donnes change.
    Je suis en train d utilser le code ci dessous,

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub AJOUT()
    Dim Plage_Cible As Range
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlsheet As Excel.Worksheet
    Dim xlApp1 As Excel.Application
    Dim xlBook1 As Excel.Workbook
    Dim xlsheet1 As Excel.Worksheet
     
    Set xlApp = New Excel.Application
    xlApp.Visible = False
    Set xlApp1 = New Excel.Application
    xlApp1.Visible = False
    mypath = "C:\Users\MC\Downloads\TDB.xlsm"
     
        If Not Dir(mypath, vbNormal) = "" Then
     
        Set xlBook = xlApp.Workbooks.Open(mypath)
        NomFichierSortie = "C:\Users\MC\Downloads\TDBpre.xlsm"
     
         If Not Dir(NomFichierSortie, vbNormal) = "" Then
         Set xlBook1 = xlApp1.Workbooks.Open(NomFichierSortie)
            xlBook.Worksheets("Data_Tend").Range("A2:k8").SpecialCells(xlCellTypeFormulas, xlNumbers + xlTextValues).Copy xlBook1.Worksheets("Data_Tend").Range("A2:k8")
     
           xlBook1.Close
     
         End If
        ' On ferme le second
        xlBook.Close
    End If
     
     
    'xlBook.Save
    'xlBook.Close
    xlApp.Quit
     
    Set xlsheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
     
    End Sub
    mais j en ai un problem au niveu de cet partie -->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlBook.Worksheets("Data_Tend").Range("A2:k8").SpecialCells(xlCellTypeFormulas, xlNumbers + xlTextValues).Copy xlBook1.Worksheets("Data_Tend").Range("A2:k8")
    qui m'affiche l'error 424 Object required, je ne sais pas ou se trouve l erreur.

    Merci de votre aide!.

    Mc.

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Pourquoi créer 2 nouvelles applications Excel alors que tu as celle du classeur de la macro qui est déjà ouverte?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    En fait, le code va être exécuté chaque mois en automatique depuis une routine VBA sur ACCESS. Du coup, lors de l'ouverture du fichier X dans la routine VBA, j'ajoute une table provenant d ACCESS au fichier X, en plus de ca, je doit prendre de ce meme fichier une plage de données pour en suite les coller dans une onglet du fichier Y qui vient se remplir chaque mois. C'est pourquoi, je le modélise de ce facon la, je pense que c'est un peu la meme logique.

    Le deux fichiers X et Y sont tjrs fermes, ils sont ouverts par la routine VBA.

    Sinon, j ai tjrs l erreur qui ne me laisse pas copier la plage de données, j'espere que tu peux m'aider.

    Merci par avance,

    Mc.

  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 040
    Points
    20 040
    Par défaut
    Bonjour...

    Pourquoi utiliser 2 application excel ? une seule suffit pour ouvrir plusieurs fichiers excel !

Discussions similaires

  1. Copier une plage de données
    Par bricko dans le forum Excel
    Réponses: 3
    Dernier message: 26/07/2013, 23h25
  2. Réponses: 0
    Dernier message: 25/07/2013, 09h36
  3. [OpenOffice][Tableur] [Macro] Comment copier une plage de données d'une Feuille "A" vers la Feuille Active
    Par clduick dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 03/02/2012, 11h39
  4. Copier une plage de données vers un onglet d'un autre document
    Par morgane07 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/04/2010, 15h59
  5. copier une plage de donnée d'un fichier à un autre
    Par kristoch91 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/10/2008, 10h26

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