[RESOLU] Erreur d'execution 91 macros nuage de points avec 2 axes des ordonnées

richert90

XLDnaute Occasionnel
Bonjour à tous,

Voila mon soucis j'avais enregistré une macro pour tracer sur le même graphique 2 courbes. Cette macro fonctionnait très bien. Mais comme les 2 courbes sur ce graphique n'avait pas la même unité, j'ai décidé de créer un 2ieme axe (l'axe secondaire) des ordonnées à droite du graphique sans pour autant supprimer ma macro de départ. J'ai donc enregistré une macro a la suite qui créer le second axe. Voici le code correspondant:


Code:
    ActiveChart.SeriesCollection(2).Select
    ActiveChart.SeriesCollection(2).AxisGroup = 2
    ActiveSheet.ChartObjects(1).Activate
    ActiveChart.SeriesCollection(2).Select
    ActiveChart.SetElement (msoElementSecondaryValueAxisTitleRotated)
    ActiveChart.Paste
    ActiveChart.Axes(xlValue, xlSecondary).AxisTitle.Text = "Grayscale level"
    Range("A11").Select

Malheuresement j'ai une erreur d'exécution 91 dés la ligne "ActiveChart.SeriesCollection(2).Select" :
PHP:
variable du bloc with non définie
Je pense qu'il faut encadrer cette macro par un with.. mais je ne sais pas quoi...


Merci d'avance de votre aide.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Erreur d'execution 91 macros nuage de points avec 2 axes des ordonnées

Bonjour richert90.


Difficile d'être affirmatif sur un bout de code sans début ni fin, mais peut-être manque-t-il une ligne du genre​
Code:
Charts("Nom_de_graphe").Activate
avant le code que vous reproduisez.​


Bonne soirée.


ℝOGER2327
#7051


Jeudi 12 Sable 141 (Sainte Choupe, mère de famille - fête Suprême Quarte)
22 Frimaire An CCXXII, 6,4592h - bruyère
2013-W50-4T15:30:07Z
 

richert90

XLDnaute Occasionnel
Re : Erreur d'execution 91 macros nuage de points avec 2 axes des ordonnées

Bonjour ROGER2327,

Merci pour ta réponse mais ça ne marche toujours pas. Cette fois j'ai une erreur de type 9:L'indice n'appartient pas à la sélection pourtant j'ai mis le bon nom du graphique.

Voici le code complet:

Code:
Sub nuage_pts()

    Call colonne_ti 'Appel de la procedure pour voir ou se situe la colonne TI
    Call colonne_moy_img 'Appel de la procedure pour voir ou se situe la colonne Moy deb img
    
    '1) On choisit les données
    Sheets(3).Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatter 'Type du graphique: ici nuage de points
    ActiveChart.SetSourceData Source:=Sheets(1).Range("A1:A" & i & "," & lettre3 & "1:" & lettre3 & i & "," & lettre4 & "1:" & lettre4 & i)
    
    '2) on rajoute un cadre autour de la légende
    ActiveChart.Legend.Select
    With Selection.Format.Line
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorAccent1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0
    End With
    
    '3) On insère un titre sur le graphique
    ActiveChart.ChartArea.Select
    ActiveChart.SetElement (msoElementChartTitleAboveChart)
    Selection.Format.TextFrame2.TextRange.Characters.Text = _
        "I.T values and average value of the image as a function of time"
    With Selection.Format.TextFrame2.TextRange.Characters(1, 63).ParagraphFormat 'Format du titre
        .TextDirection = msoTextDirectionLeftToRight
        .Alignment = msoAlignCenter
    End With
    With Selection.Format.TextFrame2.TextRange.Characters(1, 63).Font
        .BaselineOffset = 0
        .Bold = msoTrue
        .NameComplexScript = "+mn-cs"
        .NameFarEast = "+mn-ea"
        .Fill.Visible = msoTrue
        .Fill.ForeColor.RGB = RGB(0, 0, 0)
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 18
        .Italic = msoFalse
        .Kerning = 12
        .Name = "+mn-lt"
        .UnderlineStyle = msoNoUnderline
        .Strike = msoNoStrike
    End With
    With Selection.Format.TextFrame2.TextRange.Characters(1, 63).Font
        .BaselineOffset = 0
        .Bold = msoTrue
        .NameComplexScript = "+mn-cs"
        .NameFarEast = "+mn-ea"
        .Fill.Visible = msoTrue
        .Fill.ForeColor.RGB = RGB(0, 0, 0)
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 18
        .Italic = msoFalse
        .Kerning = 12
        .Name = "+mn-lt"
        .UnderlineStyle = msoNoUnderline
        .Strike = msoNoStrike
    End With
    
    '4) On ajoute un titre à l'axe des abscisses:
    ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
    Selection.Format.TextFrame2.TextRange.Characters.Text = "Inspection date"
    With Selection.Format.TextFrame2.TextRange.Characters(1, 15).ParagraphFormat
        .TextDirection = msoTextDirectionLeftToRight
        .Alignment = msoAlignCenter
    End With
    With Selection.Format.TextFrame2.TextRange.Characters(1, 15).Font
        .BaselineOffset = 0
        .Bold = msoTrue
        .NameComplexScript = "+mn-cs"
        .NameFarEast = "+mn-ea"
        .Fill.Visible = msoTrue
        .Fill.ForeColor.RGB = RGB(0, 0, 0)
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 10
        .Italic = msoFalse
        .Kerning = 12
        .Name = "+mn-lt"
        .UnderlineStyle = msoNoUnderline
        .Strike = msoNoStrike
    End With
    
    '5) on ajoute un titre à l'axe des ordonnées
    ActiveChart.SetElement (msoElementPrimaryValueAxisTitleRotated)
    ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Values"
    Selection.Format.TextFrame2.TextRange.Characters.Text = "Values"
    With Selection.Format.TextFrame2.TextRange.Characters(1, 6).ParagraphFormat
        .TextDirection = msoTextDirectionLeftToRight
        .Alignment = msoAlignCenter
    End With
    With Selection.Format.TextFrame2.TextRange.Characters(1, 6).Font
        .BaselineOffset = 0
        .Bold = msoTrue
        .NameComplexScript = "+mn-cs"
        .NameFarEast = "+mn-ea"
        .Fill.Visible = msoTrue
        .Fill.ForeColor.RGB = RGB(0, 0, 0)
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 10
        .Italic = msoFalse
        .Kerning = 12
        .Name = "+mn-lt"
        .UnderlineStyle = msoNoUnderline
        .Strike = msoNoStrike
    End With
    Cells(1, 1).Select
    
   Charts(1).Activate
    ActiveChart.SeriesCollection(2).Select
    ActiveChart.SeriesCollection(2).AxisGroup = 2
    ActiveSheet.ChartObjects(1).Activate
    ActiveChart.SeriesCollection(2).Select
    ActiveChart.SetElement (msoElementSecondaryValueAxisTitleRotated)
    ActiveChart.Paste
    ActiveChart.Axes(xlValue, xlSecondary).AxisTitle.Text = "Grayscale level"
    Range("A11").Select
 

ROGER2327

XLDnaute Barbatruc
Re : Erreur d'execution 91 macros nuage de points avec 2 axes des ordonnées

Re...


Toujours sans certitude : essayez en supprimant les lignes​
Code:
    Cells(1, 1).Select
   
   Charts(1).Activate


ℝOGER2327
#7052


Jeudi 12 Sable 141 (Sainte Choupe, mère de famille - fête Suprême Quarte)
22 Frimaire An CCXXII, 6,7347h - bruyère
2013-W50-4T16:09:48Z