copier coller graphiques erreur .width

  • Initiateur de la discussion Initiateur de la discussion jojo3008
  • Date de début Date de début

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 à toutes et à tous,
étant un fan du cassage de tête jusqu'à ce que je trouve, la ca fait quelques jours que je suis sur ce soucis et je ne trouve malheureusement pas de solution, je me tourne donc vers vous :🙁

en gros ma procédure copie et colle des graphiques puis les classes les uns en dessous des autres

Code:
Sub copycharts()
Application.Calculation = xlManual
Dim cht As ChartObject
Dim ShDest As Worksheet
Set ShDest = Workbooks("Book1").Worksheets("PFS")
Dim i As Byte
For i = 1 To 31
Workbooks("Book2").Worksheets(i).Activate
    For Each cht In ActiveSheet.ChartObjects
    cht.Width = 400
    cht.Height = 200
    cht.CopyPicture xlPrinter, xlPicture
    ShDest.Activate
    ShDest.PasteSpecial Format:="Image (métafichier amélioré)", Link:=False, DisplayAsIcon:=False
    Next cht
Next i
Call positiongraphPFS ' macro de positionnement
Application.Calculation = xlAutomatic
Application.CutCopyMode = False
End Sub
erreur :
"unable to set the width property of the chartobject class"
j'ai meme essayé en ajoutant un cht.select avant d essayer le .width mais rien n' y fait.😕
Chose trés étrange car la procédure fonctionne si je la lance seule, mais au milieu de la masse impossible de trouver le problème, quelqu'un aurait une idée ou une piste??😱

désolé je ne peux joindre de fichier, interdit par le taff 🙁

Merci d'avance a ceux qui se pencheront sur mon problème !
 
Re : copier coller graphiques erreur .width

salut Hasco, merci pour la rapidité de ta réponse,
il me met la meme erreur que lorsque je rajoutais le .select juste avant à savoir :

copypicture method of chartobject class failed

et me surligne
Code:
cht.CopyPicture xlPrinter, xlPicture
ce qui est bizarre c est que g exactement la meme procedure pour celle ci mais s appliquand pour un autre book et ça fonctionne ...
c a ne rien comprendre ! 😕
 
Re : copier coller graphiques erreur .width

Bon, j'avance dans la localisation du pb, il s avere que ca viens du "On error resume next" d'une banale procedure de creation de graphe. mais g vraiment besoin de garder ce on error resume next sinon ca ne dessine pas les graphes qui n ont que 2 ou 3 données ...
qqn a une idée ?

Code:
Sub chart_techrate(ByVal col As Byte, ByVal status As String, ByVal primat As String)
On Error Resume Next
   With ActiveSheet.ChartObjects.Add(Left:=130 * (col - 6), Width:=375, Top:=350, Height:=225)
       .Chart.SetSourceData Source:=ActiveSheet.Range(Cells(2, col), _
        Cells(last_line(col, 2, "Taux Technique"), col + 1))
       .Chart.ChartType = xl3DColumnClustered
       .Chart.SeriesCollection(1).delete
       .Chart.SeriesCollection(1).XValues = "='Taux Technique'!R2C" & col & ":R" _
            & last_line(col, 2, "Taux Technique") & "C" & col & ""
       .Chart.HasTitle = True
       .Chart.ChartTitle.Text = "='Graphe 1'!R" & col / 3 & "C16"
       .Chart.Axes(xlCategory, xlPrimary).TickLabels.NumberFormat = "0.00%"
       .Chart.Axes(xlCategory, xlPrimary).HasTitle = True
       .Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "='Taux Technique'!R" & col / 3 & "C17"
       .Chart.Axes(xlValue, xlPrimary).HasTitle = True
       .Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "='Taux Technique'!R" & col / 3 & "C18"
       .Chart.Axes(xlValue, xlPrimary).AxisTitle.Orientation = xlUpward
       .Chart.HasLegend = False
       .Chart.ApplyDataLabels ShowValue:=True
       For j = 1 To last_line(col, 2, "Taux Technique") - 1
           .Chart.SeriesCollection(1).Points(j).DataLabel.Top = -7 + .Chart.SeriesCollection(1).Points(j).DataLabel.Top
       Next j
       .Chart.RightAngleAxes = True
   End With
End Sub
 
Re : copier coller graphiques erreur .width

Bonjour jojo, Hasco🙂

mais g vraiment besoin de garder ce on error resume next sinon ca ne dessine pas les graphes qui n ont que 2 ou 3 données ...

Perso, vois pas trop le rapport, "on error resume next" permet seulement d'IGNORER les lignes provoquant une erreur, en passant directement à l'instruction suivante..... Par contre, dans la suite du déroulement de la procédure, cela peut provoquer des comportements / actions non désirés...

Enfin, c'est juste mon avis...

bon après midi.
@+
 
Re : copier coller graphiques erreur .width

coucou pierrot, ouai t as pas tord, j ai du me lancer dans la réexamination de mes 10 modules a 500 lignes chacun et le pb vient juste de là, quand je prend un cas un peu extreme avec peu de donnees ce graphique ne se trace pas, alors que le "On error resume next" permettait de le tracer quand meme , je pense mettre un if , Exit sub

Hasco, Pierrot
Merci a vous deux pour vos reponses !
 
- 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
Retour