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 d'un classeur vers un autre


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut copier des données d'un classeur vers un autre
    bonjour à tous,

    voila ma petite question, comment je pourrais faire pour copier des données d'un classeur, vers un autre ?
    en sachant que c'est pour faire une base de donnée avec le deuxième classeur

    voila en attendant de vous lire
    salutation

  2. #2
    Membre actif Avatar de ilcocodrillo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 276
    Points
    276
    Par défaut
    Heu.... Copier-Coller... non ?
    80% des pannes informatiques se situent entre le clavier et la chaise...

    L'informatique ça vous énerve, prenez 5mns de détente ici


    =========== ===========

    Une fois que le problème à trouvé une solution n'oubliez pas le

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    oui j'y avais déja pensé, mais je voudrai que cela ce fasse automatiquement, sa serais plus pratique pour moi ^^

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par jackall Voir le message
    mais je voudrai que cela ce fasse automatiquement
    C'est à dire ? Dès que le café a fini de couler ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    heu ... nan ... pas vraiment, sa serait trop long ... ^^
    non en fait je voudrais que lors de la fin de la dernière macro de mon programme qui se trouve dans mon premier classeur, qu'elles se copies d'elle même dans le deuxième classeur.

    bon je vais reformuler un peu tout sa ^^

    Mon premier classeur se compose de deux feuilles, dans chacune de ces feuilles il y a un bouton qui me permet de faire tous les calculs des feuilles respective.
    Mon but est de copier automatiquement à chaque fin de calcul les données dans mon deuxième classeur ou la base de donnée sera faite.

    ^^voila je pense cette fois j'ai mieu expliquer ^^

    merci d'avance

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    le croco t'a donné la réponse il me semble, tu copies/colles tes données dans ton autre classeur, il suffit de mettre la procédure de copier/coller en fin de procédure de calcul.
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    oui je suis d'accord avec vous, mais pour chaques calculs que je fait, je voudrais que les résultats se place toujours une ligne en dessou des précédent, c'est sa qui me bloque en fait ...

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    En concidérant que tes deux classeurs sont ouverts, voici un petit exemple qui va copier une plage de cellules A1:C10 de la feuille2 du classeur1 vers la feuille2 du classeur2, à la suite des données précédemment copiées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
    Dim ShSource As Worksheet, ShDest As Worksheet
     
    Set ShSource = Workbooks("classeur1.xls").Sheets("Feuil2")
    Set ShDest = Workbooks("classeur2.xls").Sheets("Feuil2")
     
    ShSource.Range("A1:C10").Copy ShDest.Range("A65535").End(xlUp).Offset(1, 0)
     
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  9. #9
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    merci pour ta réponse,
    maintenant est ce que tu pourrais m'aider pour que à chaque fois que je fais des calculs, il me les copies sur la ligne suivante dans ma base de donée ?

  10. #10
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    bin...euuhhh...il me semble que c'est ce que je viens de t'expliquer

    Tu as une procédure qui réalise des calculs, à la fin de cette procédure tu ajoutes les quelques lignes de code en adaptant la plage de cellules, les noms de classeurs et de feuilles. Je ne vois pas très bien ce que je peux faire de plus (à part faire couler le café )
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  11. #11
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    ben une bonne tasse de café serais la bienvenu
    en tout cas merci bien pour ton aide je pense que sa va m'aider énormément
    un grand merci pour ton aide

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut à tous
    fring déolé de critiquer ton code, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShSource.Range("A1:C10").Copy ShDest.Range("A65535").End(xlUp).Offset(1, 0)
    devrait présenter une erreur : copy n'admet pas, à ma connaissance Offset. Moi, je remplacerais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShDest.Range("A65535").End(xlUp).Offset(1, 0)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShDest.Range("A" & shdest.[A65535].End(xlUp).row + 1)
    Mais j'ai pas testé.
    A+

  13. #13
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par Gorfael Voir le message
    Mais j'ai pas testé.
    Moi oui
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  14. #14
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    heu je suis désolé de revenir vous embêter un peu mais j'ai encore un petit problème ...

    j'ai utiliser donc le code donné au dessu, mais mis à ma sauce bien évidement ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub macro1()
    Dim ShSource As Worksheet, ShDest As Worksheet
     
    Set ShSource = Workbooks("projet_stage.xls").Sheets("STAT_GOOD")
    Set ShDest = Workbooks("Base_de_Donnée.xls").Sheets("BDD")
     
    ShSource.Range("C17:G17").Copy ShDest.Range("C5").End(xlUp).Offset(1,0)
    End Sub
    et une fois que je vais dans le classeur de la base de donnée, il y a écrit : #DIV/0!

    même en remplaçant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub macro1()
    Dim ShSource As Worksheet, ShDest As Worksheet
     
    Set ShSource = Workbooks("projet_stage.xls").Sheets("STAT_GOOD")
    Set ShDest = Workbooks("Base_de_Donnée.xls").Sheets("BDD")
     
    ShSource.Range("C17:G17").Copy ShDest.Range("C" & ShDest.[A65535].End(xlUp).Row + 1)
    End Sub
    même erreur dans la base de donnée ...

  15. #15
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Oui...je n'ai pas réfléchi suffisament, ce que je t'ai proposé il copie tout, y compris les formules et c'est ce qui coince dans le fichier de destination.

    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro1()
    Dim ShSource As Worksheet, ShDest As Worksheet
     
    Set ShSource = Workbooks("projet_stage.xls").Sheets("STAT_GOOD")
    Set ShDest = Workbooks("Base_de_Donnée.xls").Sheets("BDD")
     
    ShSource.Range("C17:G17").Copy
    ShDest.Range("C65535").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
     
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  16. #16
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    oui voila la sa marche trés trés bien ^^
    grâce à ce bon en avant, j'ai une autre question qui me vient,
    je voudrai copier donc deux lignes mais les placer l'une à coté de l'autre dans la base de donné, comme par exemple la ligne C17:G17 et la ligne C18:G18
    parceque jusqu'à maintenant elle se place l'une en dessou de l'autre

  17. #17
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut jackall et le forum
    Je suppose que tes lignes contiennent des formules en adressage relatif ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShSource.Range("C17:G17").Copy ShDest.Range("C5").End(xlUp).Offset(1,0)
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ShSource.Range("C17:G17").Copy
    ShDest.Range("C5").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Faire coper/collage spécial : les valeurs
    Sinon, puisque c'est des résultats de formules que contient la colonne C, il me semble qu'il serait préférable de copier les paramètres, et éventuellement les résultats (en copier/coller spécial value). Comme ça, tu pourrais en remettant les paramètres sauvegardées, avoir les bons résultats.
    A+

  18. #18
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    oui merci, je vais voir avec sa se que je peut faire, merci pour votre aide, les gens sur ce forum sont extrèmement sympa, j'aime bien

    voila encore merci de votre aide
    @+

  19. #19
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    je voudrai copier donc deux lignes mais les placer l'une à coté de l'autre dans la base de donné, comme par exemple la ligne C17:G17 et la ligne C18:G18
    parceque jusqu'à maintenant elle se place l'une en dessou de l'autre
    Juste une petite adaptation qui devrait ressembler à un truc du genre
    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
    Sub Macro1()
    Dim ShSource As Worksheet, ShDest As Worksheet, DerL As Long
     
    Set ShSource = Workbooks("projet_stage.xls").Sheets("STAT_GOOD")
    Set ShDest = Workbooks("Base_de_Donnée.xls").Sheets("BDD")
     
    DerL = ShDest.Range("C65535").End(xlUp).Row + 1
     
    ShSource.Range("C17:G17").Copy
    ShDest.Range("C" & DerL).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
    ShSource.Range("C18:G18").Copy
    ShDest.Range("H" & DerL).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
     
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  20. #20
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 53
    Points
    53
    Par défaut
    voila désormais cela fonctionne trés trés bien merci pour votre aide

    à bientôt tous le monde
    @+

+ 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. Copier des données d'un fichier vers un autre sans écraser le second
    Par jalons dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 09/04/2013, 20h07
  3. [AC-2000] Copier des données d'une table vers une autre
    Par forges dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/12/2012, 09h06
  4. [XL-2007] Copier des données d'une feuille vers une autre feuille
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/12/2011, 12h08
  5. copier des données d'une table vers une autre
    Par shaftJackson dans le forum PL/SQL
    Réponses: 2
    Dernier message: 02/04/2009, 16h34

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