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 :

[VBA-E]Copier un graph


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut [VBA-E]Copier un graph
    coucou;

    truc tout bete surement..

    je voudrais copier un graph dans un autre classeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    'création du fichier
    Dim CeClasseur As Workbook
    Dim NouveauClasseur As Workbook
    Set CeClasseur = ActiveWorkbook
    Set NouveauClasseur = Application.Workbooks.Add
    CeClasseur.Charts(1).Copy NouveauClasseur
    NouveauClasseur.SaveAs NomDossier & "\" & "batch_" & MettreAJour.TextBox2.Value & ".xls"
    NouveauClasseur.Close
    j'ai une erreur sur la ligne en gras, je vois pas du tout comment l'ecrire

    ensuite mon code doit etre améliorable, j'ai vraiment de la misère avec la gestion de 2 classeurs (me suis inspiré de la faq mais pour mon cas y doit y avoir mieux).

    ce que je veux faire concretement :

    faire une copie du classeur sur lequel je suis (qui comporte 1 feuille et 2 graph) en effacant une partie des données qui se trouvent sur la feuille.

    Merci davance

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'création du fichier
    Dim CeClasseur As Workbook
    Dim NouveauClasseur As Workbook
    Set CeClasseur = ActiveWorkbook
    Set NouveauClasseur = Application.Workbooks.Add
    CeClasseur.Sheets("Graph1").Copy NouveauClasseur.Worksheets(1)
    NouveauClasseur.SaveAs NomDossier & "\" & "batch_" & MettreAJour.TextBox2.Value & ".xls"
    NouveauClasseur.Close

  3. #3
    Membre émérite
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Par défaut
    Ce que tu peux aussi faire c'est enregister le classeur 1 sous le nom du classeur 2 et ensuite le rouvrir, enlever les valeurs et le refermer...

    C'esst toi qui voit ca...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Yop,

    deja merci pour ta solution

    ensuite

    Ce que tu peux aussi faire c'est enregister le classeur 1 sous le nom du classeur 2 et ensuite le rouvrir, enlever les valeurs et le refermer...
    C'est ce que je voulais faire à la base ! Le probleme c'est que je 'narrive pas à l'ecrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim CeClasseur As Workbook
    Dim NouveauClasseur As Workbook
    Set CeClasseur = ActiveWorkbook
    CeClasseur.SaveAs NomDossier & "\" & "batch_.....
    Mon probleme c'est qu'avec le code là j'ai le fichier "NomDossier & "\" & "batch_....." qui est ouvert à la fin et plus mon fichier de base, comme pour un enregistrer sous en fait...

    une idée pour enregistrer mon fichier de base sous un autre nom et "rester" sur mon fichier de base?

  5. #5
    Membre émérite
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Par défaut
    C'est vrai que c'est ennuyeux avait plus pensé a ca lol

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    hm

    j'ai retrouvé un de mes code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Set Ceclasseur = ActiveWorkbook
        Ceclasseur.Sheets(Nomfeuille).Copy
        ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Nomfic & ".xls"
        ActiveWorkbook.Worksheets(Nomfeuille).OLEObjects(1).Delete
        ActiveWorkbook.Save
        ActiveWorkbook.Close
    ca laisse le classeur source ouvert et copie la feuille 1 dans un nouveau, j'avoue que je comprend pas trop pourquoi dans ce cas j'ai tout au long du code code mon classeur source ouvert jusqu'a la fin surement à cause du

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ceclasseur.Sheets(Nomfeuille).Copy
    mais bon dans mon cas si je veux faire un enregistrer sous c'est justement pour eviter les Copy

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Bon j'ai trouvé ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 1 To CeClasseur.Sheets.Count
        CeClasseur.Sheets(i).Copy NouveauClasseur.Sheets(i)
    Next
    mais en fait il me faut absolument un Saveas car là j'ai uniquement les feuilles du premier classeur de copié, les graph de mon nouveau classeur prennent leur valeurs à partir de mon premier classeur (ca doit etre changeable mais autant ne pas avoir à le faire) et je n'y pensais plus mais mes macro, mon code dans thisworkbook etc.. rien n'est copié biensur et j'en ai besoin !

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Hello Erzatz, Y'avait longtemps...
    Je ne vais pas te mettre de code mais faire ce que tu aurais dû faire mettre la démarche
    - Sauver le fichier sous un autre nom
    - Fermer le fichier
    - Ré-ouvrir le fichier d'origine
    C'est bien ce que tu veux faire ?

    A+

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Hello Erzatz, Y'avait longtemps...
    C'est pas drole !

    - Sauver le fichier sous un autre nom
    - Fermer le fichier
    - Ré-ouvrir le fichier d'origine
    C'est bien ce que tu veux faire ?
    Oui ! la demarche ej l'avais deja merci

    Le probleme c'est

    - Ré-ouvrir le fichier d'origine
    le code s'execute à partir de ce fichier donc comment le reouvrir, si il est fermé le code poura pas

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu enregistes le fichier "sous", la macro est dans le fichier "Sous", donc, elle continue... Donc, avant de fermer le fichier "Sous", tu rouvres le fichier d'origine et là, tu peux fermer le fichier enregistré sous.
    Si ta macro doit se poursuivre, tu n'es pas obligé de fermer tout de suite le fichier enregistré sous...

    Au moins, essaie ça...

    A+

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    donc, elle continue
    pas bete !

    par contre ca :

    tu rouvres le fichier d'origine
    j'arrive pas et pourtant j'en ai essayé des solutions !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim CeClasseur As Workbook
    Dim NouveauClasseur As Workbook
     
    Set CeClasseur = ActiveWorkbook
    CeClasseur.SaveAs NomDossier & "\" & "batch_...."
    Set NouveauClasseur = ActiveWorkbook
    CeClasseur.Open
    'autres instructions
    NouveauClasseur.Close
    jpense que l'instruction se trouve au bon endroit. jve ouvrir mon fichier source puis fermer le fichier créé.

    par contre comment l'ecrire... j'ai tenté "workbooks(ceclasseur).open" puis à partir de l'aide "workbooks.open ceclasseur" etc.. ca veut pas

    une idée pour ca?

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.open filename:= "C:\Chemin\CeClasseur.xls"
    As-tu essayé ?

    A+

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    ouioui je venais d'essayer en fait et ca fonctionne !

    donc tout va bien maintenant merci

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Un jour... tu vas voir, tu vas devenir bon... Désespère pas !

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut


    (Ce smiley correspond tout à fait à la situation !)

  16. #16
    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 : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par Elstak


    (Ce smiley correspond tout à fait à la situation !)
    Ah, ces jeunes... Ca ne sait même plus comment on dit merci.

    Vous me voyez encore??? Pas normal, je suis déjà sorti
    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!

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

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 12h51
  2. [VBA-E]Copier avant d'effacer
    Par tarmin dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/01/2006, 13h29
  3. [VBA-E] Copier à la suite...
    Par keyser22 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/01/2006, 17h08
  4. [VBA-E] Copier une formule de calcul dans toute la ligne
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2005, 18h18
  5. [VBA Exel] Copier un fichier xls et lui donner un autre nom
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/11/2005, 17h40

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