Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copier graphiques d'un classeur à un autre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jojo3008

XLDnaute Junior
Bonjour,

voila j ai un petit soucis: je voudrais copier tous les graphiques d un classeur contenant 31 worksheets a un autre.
j ai revérifié ma procedure plusieurs fois mais pas moyen :
runtime error '9' : subscript out of range
en me surlignant cette ligne : Workbooks("Book1").Worksheets("PFS").Select
merci beaucoup pour votre temps!


Code:
Sub copychartsPFS()
Application.Calculation = xlManual
Dim Cht As ChartObject
Dim i As Byte
For i = 1 To 31
Workbooks("PFS_simplifie_v3.2.xls").Worksheets(i).Select
    For Each Cht In ActiveSheet.ChartObjects
    Cht.copy
    Workbooks("Book1.xls").Worksheets("PFS").Select
    ActiveSheet.Paste
    Next Cht
Next i
Application.Calculation = xlAutomatic
Application.CutCopyMode = False
End Sub
 
Re : copier graphiques d'un classeur à un autre

Bonjour,

Code:
Workbooks("Book1.xls").Worksheets("PFS").Select

Soit le classeurs Book1.xls n'est pas ouvert
Soit la feuille PFS n'existe pas dans Book1.xls

Sinon, certainement le select qui ne va pas, il faut activer la feuille Et le Classeur.

Code:
Workbooks("Book1.xls").Worksheets("PFS").[COLOR=red][B]Activate[/B][/COLOR]

Ou mieux, si le classeur destination est ouvert et que sa feuille PFS existe
Code:
Sub copychartsPFS()
Application.Calculation = xlManual
Dim Cht As ChartObject
Dim [COLOR=blue][B]ShDest[/B][/COLOR] as Worksheet
Set [COLOR=blue][B]ShDest[/B][/COLOR] = Workbooks("Book1.xls").Worksheets("PFS")
Dim i As Byte
 
For i = 1 To 31
Workbooks("PFS_simplifie_v3.2.xls").Worksheets(i).[COLOR=red][B]Activate[/B][/COLOR]
    For Each Cht In ActiveSheet.ChartObjects
    Cht.copy
    [COLOR=blue][B]shDest[/B][/COLOR].Paste  
    Next Cht
Next i
Application.Calculation = xlAutomatic
Application.CutCopyMode = False
End Sub
A+
 
Re : copier graphiques d'un classeur à un autre

Bonjour jojo,

Pour sélectionner (ou activer) une feuille d'un autre classeur, il faut d'abord sélectionner l'autre classeur, puis sa feuille

Je ne sais pas trop pour les graphiques, mais il y a de nombreux cas où on peut se passer de sélectionner...

Je fais un test et te reviens

Edit : Bonjour Hasco, bon ben tu as répondu 😉
 
Re : copier graphiques d'un classeur à un autre

Re,

Hello TotoTiti🙂,

Sauf que je me demande....?
tous les graphiques doivent être copiés sur la même feuille (PFS) de Book1.xls?

Cela risque de faire beaucoup. Non?

A+
 
Re : copier graphiques d'un classeur à un autre

Merci pour vos reponses aussi rapides, est ce que ca peut avoir un rapport avec le fait que mon book1 n est pas enregistré?
je vais tester merci

edit : nan apparament pas!
 
Re : copier graphiques d'un classeur à un autre

Merci hasco, oui ma premiere intuition été bien "book1" mais tjrs la meme erreur...
oui je veux tous les copier sur la meme worksheet, ben j ai pas le choix consignes obligent.... je pensais les mettre cote a cote.
j ai teste ta procedure, tjrs une erreur
subscript out of range :
Set ShDest = Workbooks("Book1").Worksheets("PFS")
je commence a bien connaitre le fluo jaune de VBA...
merci en tout cas pour vos reponses 🙂
 
Re : copier graphiques d'un classeur à un autre

Re,

dis moi comment tu as nommé ton Classeur "Book1".

A l'ouverture d'un nouveau classeur il s'appelle normalement "Classeur1" ou "Classeur2" etc. à moins qu'il ne soit issu d'un classeur modèle.

Pour connaitre son nom véritable, active le manuellement
Retourne dans l'editeur de macro
fais CTRL+g et dans la petite fênètre qui s'ouvre:

?ActiveWorkBook.Name

Puis valide. Sous l'instruction tu verras apparaît le nom du classeur actif.

A+
 
Re : copier graphiques d'un classeur à un autre

je le cree grace a une macro, (juste un workbooks.add)
vu que le excel est en anglais c est pour cela que ca ne s apelle pas classeur1.
d apres ta manip ca me renvoie Book1 donc toujours le meme soucis 😕
 
Re : copier graphiques d'un classeur à un autre

Re,

tu as vérifié que la feuille PFS a bien été créée?

Sinon, donne nous la macro qui ajoute le fichier et crée la feuille.

A+
 
Re : copier graphiques d'un classeur à un autre

oui elle est bien cree :

Code:
Sub AddNewWorkbook()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
    xlApp.SheetsInNewWorkbook = 2
    Set xlBook = xlApp.Workbooks.Add
    Workbooks.Add
    xlApp.Visible = True
    Set xlSheet = xlBook.Worksheets(1)
    xlSheet.Name = "Results"
    Set xlSheet = Nothing
    Set xlSheet = xlBook.Worksheets(2)
    xlSheet.Name = "PFS"
    xlApp.SheetsInNewWorkbook = 3
End Sub

il crée bien le classeur Book1 avec mes 2 onglets comme prévu
 
Re : copier graphiques d'un classeur à un autre

Bonjour,

Dans ta macro tu crées (ouvre), par la ligne ci-dessous, une deuxième session Excel et les sessions sont indépendantes les une des autres.
L'application Excel 1 ne trouve pas les objets de l'application Excel 2
Code:
Dim xlApp As Excel.Application
...
Set xlApp = CreateObject("Excel.Application")

Remplacer la macro par:
Code:
Sub AddNewWorkbook()
Dim xlSheet As Excel.Worksheet
Dim xlBook As Workbook 'Peut-être inutile, si déclaré ailleur.je l'ai rajouté pour test
    Application.SheetsInNewWorkbook = 2
    Set xlBook = Workbooks.Add
    Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1)
    xlSheet.Name = "Results"
    Set xlSheet = Nothing
    Set xlSheet = xlBook.Worksheets(2)
    xlSheet.Name = "PFS"
    Application.SheetsInNewWorkbook = 3
End Sub

A+
 
Re : copier graphiques d'un classeur à un autre

Re,

ah ben voilà : tu crée une nouvelle Application : tes 2 classeurs sont dans 2 sessions Excel différentes, ce qui explique le bug

essaye avec ça :

Code:
Sub AddNewWorkbook()
Dim xlBook As Workbook
Dim xlSheet As Worksheet
    Application.SheetsInNewWorkbook = 2
    Set xlBook = Application.Workbooks.Add
    Set xlSheet = xlBook.Worksheets(1)
    xlSheet.Name = "Results"
    Set xlSheet = xlBook.Worksheets(2)
    xlSheet.Name = "PFS"
    Application.SheetsInNewWorkbook = 3
End Sub
 
Re : copier graphiques d'un classeur à un autre

seul soucis est que AddNewWorkbook me crée des workbook 2 par 2, et meme si je ferme les precedents j arrive a Book13 la ... on peut forcer le nom du workbook sans l enregistrer?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…