Problème création graphique plage variable

Résolu
Wazzid Messages postés 14 Statut Membre -  
Wazzid Messages postés 14 Statut Membre -
Bonjour,

Je rédige un nouveau post qui fait suite à mon précédent.
Je n'avais obtenue aucune réponse et entre temps j'ai réussi à avancer mais je suis maintenant bloqué pour la création du graphe avec la sélection de la plage de données.

Ma macro va chercher à l'aide de la méthode find, la dernière colonne utile pour réaliser mon graphe et descend jusqu'à l'avant dernière cellule non vide ce qui me permet de définir la dernière case de ma plage de données.

Or je souhaite maintenant définir la plage de la cellule A1 à ma dernière définit juste avant mais le code Range("A1:Lastcell") ne fonctionne pas, il me renvoie une erreur

Si vous pouviez me sortir de cette situation, merci de votre aide.

Fichier excel : http://www.cjoint.com/c/GFoiTTT3Uky

Sub graph()
'
' graphe Macro
'

'

Dim grph1 As Worksheet
Dim grph2 As Worksheet
Dim grph3 As Worksheet

Dim i As Integer
Dim y As Integer
Dim z As Integer

Dim Cpt As Integer
Dim Cpy As Integer
Dim Cpu As Integer
Dim CptSh As Integer
Cpt = 0
CptSh = Sheets.Count
For i = 1 To CptSh
If Sheets(i).Name <> "graphique phase 1" Then Cpt = Cpt + 1 Else Exit For
Next i

If Cpt = CptSh Then
Sheets.Add After:=Sheets("synthese")
ActiveSheet.Name = "graphique phase 1"
End If

Cpy = 0
CptSh = Sheets.Count
For y = 1 To CptSh
If Sheets(y).Name <> "graphique phase 2" Then Cpy = Cpy + 1 Else Exit For
Next y

If Cpy = CptSh Then
Sheets.Add After:=Sheets("graphique phase 1")
ActiveSheet.Name = "graphique phase 2"
End If

Cpu = 0
CptSh = Sheets.Count
For u = 1 To CptSh
If Sheets(u).Name <> "graphique phase 3" Then Cpu = Cpu + 1 Else Exit For
Next u

If Cpu = CptSh Then
Sheets.Add After:=Sheets("graphique phase 2")
ActiveSheet.Name = "graphique phase 3"
End If

Dim R1 As Range 'déclare la variable R1 (Recherche 1)
Dim R2 As Range 'déclare la variable R2 (Recherche 2)
Dim R3 As Range 'déclare la variable R2 (Recherche 3)
Dim R4 As Range 'déclare la variable R2 (Recherche 4)
Dim R5 As Range 'déclare la variable R2 (Recherche 5)
Dim R6 As Range 'déclare la variable R2 (Recherche 6)
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim COL2 As Integer 'déclare la variable COL2 (COLonne 2)
Dim COL3 As Integer 'déclare la variable COL3 (COLonne 3)
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim Lastcell As Range

Dim courbe1 As Range

Sheets("resultat").Select

Set R1 = Sheets("resultat").Rows(1).Find("Mph1", , xlValues, xlWhole)
If Not R1 Is Nothing Then 'condition : si au moins une occurrence est trouvée
COL = R1.Column 'définit la colonne COL de la première occurrence trouvée
DL = Sheets("resultat").Cells(Application.Rows.Count, COL).End(xlUp).Offset(-1, 0).Row 'définit la dernière ligne éditée DL de la colonne COL de l'onget OND
End If 'fin de la condition

Set Lastcell = Cells(DL, COL)

Set courbe1 = Range("A1:Lastcell") ' la méthode range de l'objet global à échoué

'Lastcell me renvoie la valeur correspondante à ma dernière case voulue pour faire ma plage

Worksheets("graphique phase 1").Shapes.AddChart2(227, xlLineMarkers).Select
ActiveChart.SetSourceData Source:=Range("resultat!courbe1")

End Sub

9 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Essaies ceci
    DL = Sheets("resultat").Cells(Rows.Count, col).End(xlUp).Row - 1
    Set Lastcell = Cells(DL, col)
    Set courbe1 = Range("A1:" & Lastcell.Address)

    Cdlmnt
    1
    1. Wazzid Messages postés 14 Statut Membre
       
      Bonjour ccm81,

      je viens d'essayer avec le code donné.
      Une erreur intervient lors de la dernière ligne,
      Je pense ne pas utiliser les bonnes formules pour créer mon graphique

      Si vous pouviez m'indiquez la démarche à suivre, merci

      Cordialement


      Dim R1 As Range 'déclare la variable R1 (Recherche 1)

      Dim COL As Integer 'déclare la variable COL (COLonne)

      Dim DL As Long 'déclare la variable DL (Dernière Ligne)
      Dim Lastcell As Range


      Dim courbe1 As Range


      Sheets("resultat").Select
      Set R1 = Sheets("resultat").Rows(1).Find("Mph1", , xlValues, xlWhole)
      If Not R1 Is Nothing Then 'condition : si au moins une occurrence est trouvée
      COL = R1.Column 'définit la colonne COL de la première occurrence trouvée
      DL = Sheets("resultat").Cells(Application.Rows.Count, COL).End(xlUp).Offset(-1, 0).Row 'définit la dernière ligne éditée DL de la colonne COL de l'onget OND

      End If 'fin de la condition

      Set Lastcell = Cells(DL, COL)
      Set courbe1 = Range("A1:" & Lastcell.Address)



      Worksheets("graphique phase 1").Shapes.AddChart2(227, xlLineMarkers).Select
      Sheets("resulat").SetSourceData Source:=Range("resultat!courbe1") ' Erreur dernière ligne méthode Range de l'objet global a échoué


      End Sub
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Lorsque tu copies un code dans ton message, merci de le coller entre balise


    j'ai omis de télécharger ton classeur
    Dim Col As Byte, Dl As Integer
    Dim Courbe1 As Range

    With Sheets("resultat")
    If Application.CountIf(.Rows(1), "Mph1") = 0 Then GoTo inconnu
    Col = .Rows(1).Find(what:="Mph1", After:=.range("A1").Column
    Dl = .Columns(Col).Find(what:="*", searchdirection:=xlPrevious).Row
    Set Courbe1 = .Range(.Cells(1, 1), .Cells(Dl, Col))
    End With
    'la suite du code......

    Exit Sub
    'gestionaire errereur
    inconnu:
    MsgBox "mth1 inconnu", vbCritical

    End Sub


    Edit: 14h37

    petites modif après consultation du classeur

    Bonjour CCm excuse moi je n'avais pas rafraichi


     Michel
    1
    1. Wazzid Messages postés 14 Statut Membre
       
      Bonjour michel_m ,

      Désolé ce sera fait dorénavant merci.

      A propos de votre message, pourquoi me recommandez vous de remplacer mon code par la votre ? Je débute sur VBA et j'imagine bien que mes macros crée à partir de code trouver sur le net sois horrible pour des habitués du codage VBA.

      Je cherche simplement à comprendre ce qui ne va pas.

      Merci de votre aide

      Cordialement
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > Wazzid Messages postés 14 Statut Membre
         
        ma proposition corrige tes erreurs: a toi de plancher un peu pour comprendre et progresser
        0
      2. Wazzid Messages postés 14 Statut Membre > michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention  
         
        J'ai rajouté l'Offset qui manquait sur ton code afin de bien avoir la bonne dernière cellule pour ma plage de données de mon graphe.

        Mais j'obtiens la même erreur à la derniere ligne pour la création du graphe.

        Je vois bien que mon code pour créer un graphe ne va pas et les lignes de codes utilisés par l'enregistreur de macro de ne vont pas non plus.

        Est ce seulement le range qui ne va pas ou toute la structure du code concernant la création du graphe qui ne convient pas ?

        Merci de ton aide
        Cordialement


        Dim Col As Byte, Dl As Integer
        Dim Courbe1 As Range

        With Sheets("resultat")
        If Application.CountIf(.Rows(1), "Mph1") = 0 Then GoTo inconnu
        Col = .Rows(1).Find(What:="Mph1", After:=Range("A1")).Column
        Dl = .Columns(Col).Find(What:="*", searchdirection:=xlPrevious).Offset(-1, 0).Row
        Set Courbe1 = .Range(.Cells(1, 1), .Cells(Dl, Col))
        End With


        Set Lastcell = Cells(Dl, Col)
        Set Courbe1 = Range("A1:" & Lastcell.Address)
        Worksheets("graphique phase 1").Shapes.AddChart2(227, xlLineMarkers).Select
        Sheets("resultat").SetSourceData Source:=Range("courbe1") ' Erreur derniere ligne méthode Range de l'objet global a échoué

        Exit Sub
        'gestionaire errereur
        inconnu:
        MsgBox "mth1 inconnu", vbCritical

        End Sub
        0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Essaies ceci

    Set Lastcell = Sheets("resultat").Cells(DL, COL)
    Set courbe1 = Sheets("resultat").Range("A1:" & Lastcell.Address)
    Sheets("graphique phase 1").Select
    Charts.Add
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=courbe1
    ActiveChart.Location Where:=xlLocationAsObject, Name:="graphique phase 1"


    > michel. ça va ? et aucun pb pour l'incruste, bien au contraire ...

    Cdlmnt
    1
    1. Wazzid Messages postés 14 Statut Membre
       
      Bonjour, ccm81

      Merci beaucoup ! Ça marche !!

      c'est parfait, me reste plus qu'à voir comment arranger les axes du graphiques et créer les deux autres graphiques restants.

      Merci encore, je reviendrai sûrement vous sollicitez si je n'y arrive pas du tout.

      Bonne journée
      Cordialement,
      0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    tes plages sont déjà des "Range"
    essaies ceci
    Set courbe2 =Union(plage_valeur2, plage_AD)
    1
    1. Wazzid Messages postés 14 Statut Membre
       
      c'est la même que celle que j'ai essayé juste au dessus non ?

      Set courbe2 = Sheets("resulat").Union(plage_valeur2, plage_AD) 


      Edit : à non ça marche en enlevant le sheets("resultat") ...
      0
    2. ccm81 Messages postés 11033 Statut Membre 2 434
       
      Eh oui ...
      J'aurai certainement du écrire
      tes plages sont déjà des "Range" de la feuille "resultat"
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    offset s'applique à une cellule (range) et non à un entier (integer)

    la ligne que je t'avais transmis donne la dernière ligne occupée mais si tu maintiens le retrait de cette dernière ligne
    Dl = .Columns(Col).Find(What:="*", searchdirection:=xlPrevious).Row-1 


    au besoin, fais une un essai avec les 2 manières dans une feuille d'un classeur avec des données dans une colonne

    Salut CCM, ca va ca va malgré cette canicule (38-40°) ressentis dehors)

    je te demande une astuce par MP. merci d'avance

    0
    1. Wazzid Messages postés 14 Statut Membre
       
      Bonjour, michel_m

      Merci de ton explication.

      Donc après essai, ça fonctionne bien en remplaçant les dernières lignes de code pour la création du graphe donné par ccm81.

      Merci beaucoup.
      0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    De rien,

    Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

    Bonne journée à tous
    0
    1. Wazzid Messages postés 14 Statut Membre
       
      Malheuresement non, j'ai de nouveau un problème avec un Range ...
      Pour mes graphiques suivant j'ai besoin des 4 premieres colonnes + d'une plage à l'intérieure du tableau.

      Je pesnais donc utilisé un Union de mes deux Plage mais j'obtiens deja avant ça une erreur sur ma plage de données que j'ai voulu définir en prenant la première cellule et la dernière.


      Set Lastcell2 = Sheets("resultat").Cells(DL2, COL2)
      Set Firstcell = Sheets("resultat").Cells(1, COL).Offset(0, 1)
      Set LastD = Range("D" & Rows.Count).End(xlUp)
      Set plage_AD = Sheets("resultat").Range("A1:" & LastD.Address)
      Set plage_valeur2 = Sheets("resultat").Range("Firstcell.Adress: & Lastcell2.Adress")
      ' Erreur plage_valeur2 = nothing
      Set courbe2 = Sheets("resulat").Union(plage_valeur2, plage_AD)
      Sheets("graphique phase 2").Select


      Cordialement
      0
  8. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Essaies ceci (tu concaténes tes deux adresses en les séparant par ":" - il y a 2 "d" à Address)
    Set plage_valeur2 = Sheets("resultat").Range(Firstcell.Address & ":" & Lastcell2.Address) 


    Cdlmnt
    0
    1. Wazzid Messages postés 14 Statut Membre
       
      j'avais trouvé cette ligne de codes en cherchant un peu sur internet et finalement c'est la ligne du dessous qui ne va plus ...

      Set courbe2 = Sheets("resulat").Union(plage_valeur2, plage_AD)



      Même problème avec ce code là
      Set Lastcell2 = Sheets("resultat").Cells(DL2, COL2)
      Set Firstcell = Sheets("resultat").Cells(1, COL).Offset(0, 1)
      Set LastD = Range("D" & Rows.Count).End(xlUp)
      Set plage_AD = Sheets("resultat").Range("A1:" & LastD.Address)
      Set plage_valeur2 = Sheets("resultat").Range(Firstcell, Lastcell2)
      Set courbe2 = Sheets("resulat").Union(Range("plage_valeur2"), Range("plage_AD"))


      Ces Range ça me rend dingue ...
      0
  9. Wazzid Messages postés 14 Statut Membre
     
    Merci beaucoup de ton aide ccm81

    Pareil à michel_m

    Je posterais mon code en entier concernant ma macro si des personnes se retrouvent avec le même type de problème que moi.

    ' Il faut avouer que tous les autres post m'ont bien aidés pour réaliser une grande partie de ma macro aussi

    Je marquerai comme résolu le sujet juste après

    Encore merci,
    Bonne journée
    0
  10. Wazzid Messages postés 14 Statut Membre
     
    Voici la totalité du code qui me permet de créer des graphes à partir d'un tableau de données

    Avec pour chaque graphe des variables pour aller chercher sur la première ligne la colonne ou se trouve un certain texte et ainsi définir la plage de données correspondante au graphe voulu avec la première et dernière cellule.

    Sub graph()
    '
    ' graphe Macro
    '

    '

    Dim grph1 As Worksheet 'déclare grph1 comme feuille excel
    Dim grph2 As Worksheet 'déclare grph2 comme feuille excel
    Dim grph3 As Worksheet 'déclare grph3 comme feuille excel

    Dim i As Integer
    Dim y As Integer
    Dim z As Integer

    Dim Cpt As Integer
    Dim Cpy As Integer
    Dim Cpu As Integer
    Dim CptSh As Integer
    Cpt = 0
    CptSh = Sheets.Count
    For i = 1 To CptSh 'Créée la feuille graphique phase 1 après la feuille resultat
    If Sheets(i).Name <> "graphique phase 1" Then Cpt = Cpt + 1 Else Exit For 'si elle n'existe pas déjà
    Next i

    If Cpt = CptSh Then
    Sheets.Add After:=Sheets("synthese")
    ActiveSheet.Name = "graphique phase 1"
    End If

    Cpy = 0
    CptSh = Sheets.Count
    For y = 1 To CptSh
    If Sheets(y).Name <> "graphique phase 2" Then Cpy = Cpy + 1 Else Exit For
    Next y

    If Cpy = CptSh Then
    Sheets.Add After:=Sheets("graphique phase 1")
    ActiveSheet.Name = "graphique phase 2"
    End If

    Cpu = 0
    CptSh = Sheets.Count
    For u = 1 To CptSh
    If Sheets(u).Name <> "graphique phase 3" Then Cpu = Cpu + 1 Else Exit For
    Next u

    If Cpu = CptSh Then
    Sheets.Add After:=Sheets("graphique phase 2")
    ActiveSheet.Name = "graphique phase 3"
    End If

    Dim R1 As Range 'déclare la variable R1 (Recherche 1)

    Dim COL As Integer 'déclare la variable COL (COLonne)

    Dim DL As Long 'déclare la variable DL (Dernière Ligne)
    Dim Lastcell As Range

    Dim courbe1 As Range

    Sheets("resultat").Select
    Set R1 = Sheets("resultat").Rows(1).Find("Mph1", , xlValues, xlWhole)
    If Not R1 Is Nothing Then 'condition : si au moins une occurrence est trouvée
    COL = R1.Column 'définit la colonne COL de la première occurrence trouvée
    DL = Sheets("resultat").Cells(Application.Rows.Count, COL).End(xlUp).Offset(-1, 0).Row 'définit la dernière ligne éditée DL de la colonne COL de l'onget OND

    End If 'fin de la condition

    Set Lastcell = Sheets("resultat").Cells(DL, COL)
    Set courbe1 = Sheets("resultat").Range("A1:" & Lastcell.Address)
    Sheets("graphique phase 1").Select
    Charts.Add
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=courbe1
    ActiveChart.Location Where:=xlLocationAsObject, Name:="graphique phase 1"

    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.ChartArea.Select
    ActiveSheet.Shapes("Graphique 1").Height = 402.5196850394
    ActiveSheet.Shapes("Graphique 1").Width = 688.8188976378
    ActiveSheet.Shapes("Graphique 1").IncrementLeft -148.8
    ActiveSheet.Shapes("Graphique 1").IncrementTop -101.4
    ActiveChart.ClearToMatchStyle
    ActiveChart.ChartStyle = 231
    ActiveChart.Axes(xlCategory).Select
    ActiveChart.Axes(xlCategory).TickLabelSpacing = 1
    ActiveChart.Axes(xlCategory).TickLabelSpacing = 100
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MinimumScale = 0
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    Selection.Delete

    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
    ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
    ActiveChart.Axes(xlValue).AxisTitle.Select
    ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Échauffement (k)"
    Selection.Format.TextFrame2.TextRange.Font.Size = 20

    Dim R2 As Range 'déclare la variable R1 (Recherche 2)

    Dim COL2 As Integer 'déclare la variable COL (COLonne 2)

    Dim DL2 As Long 'déclare la variable DL (Dernière Ligne2)
    Dim Lastcell2 As Range
    Dim Firstcell As Range ' déclare la variable Firstcell ( premiere cellule graphe 2)

    Dim plage_valeur2 As Range
    Dim courbe2 As Range
    Dim plage_AD As Range
    Dim LastD As Range

    Sheets("resultat").Select
    Set R2 = Sheets("resultat").Rows(1).Find("Mph2", , xlValues, xlWhole)
    If Not R2 Is Nothing Then 'condition : si au moins une occurrence est trouvée
    COL2 = R2.Column 'définit la colonne COL de la première occurrence trouvée
    DL2 = Sheets("resultat").Cells(Application.Rows.Count, COL2).End(xlUp).Offset(-1, 0).Row 'définit la dernière ligne éditée DL de la colonne COL

    End If 'fin de la condition

    Set Lastcell2 = Sheets("resultat").Cells(DL2, COL2) ' Définit ma dernière cellule de ma plage de données
    Set Firstcell = Sheets("resultat").Cells(1, COL).Offset(0, 1) 'Définit ma première cellle de ma plage de données
    Set LastD = Range("D" & Rows.Count).End(xlUp) ' Va chercher la derniere case non vide de la colonne D
    Set plage_AD = Sheets("resultat").Range("A1:" & LastD.Address) ' Définit ma plage constante des 4 premieres colonnes
    Set plage_valeur2 = Sheets("resultat").Range(Firstcell, Lastcell2) ' définit ma plage de données à l'intérieur de mon tableau
    Set courbe2 = Union(plage_valeur2, plage_AD) ' unifie les deux plages pour la plage de données à donner au graphe
    Sheets("graphique phase 2").Select

    Sheets("graphique phase 2").Select
    Charts.Add
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=courbe2
    ActiveChart.Location Where:=xlLocationAsObject, Name:="graphique phase 2"

    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.ChartArea.Select
    ActiveSheet.Shapes("Graphique 1").Height = 402.5196850394
    ActiveSheet.Shapes("Graphique 1").Width = 688.8188976378
    ActiveSheet.Shapes("Graphique 1").IncrementLeft -148.8
    ActiveSheet.Shapes("Graphique 1").IncrementTop -101.4
    ActiveChart.ClearToMatchStyle
    ActiveChart.ChartStyle = 231
    ActiveChart.Axes(xlCategory).Select
    ActiveChart.Axes(xlCategory).TickLabelSpacing = 1
    ActiveChart.Axes(xlCategory).TickLabelSpacing = 100
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MinimumScale = 0
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    Selection.Delete

    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
    ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
    ActiveChart.Axes(xlValue).AxisTitle.Select
    ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Échauffement (k)"
    Selection.Format.TextFrame2.TextRange.Font.Size = 20

    ' 3eme graphe

    Dim R3 As Range 'déclare la variable R1 (Recherche 3)

    Dim COL3 As Integer 'déclare la variable COL (COLonne 3)

    Dim DL3 As Long 'déclare la variable DL (Dernière Ligne3)
    Dim Lastcell3 As Range
    Dim Firstcell2 As Range
    Dim COL_D As Range

    Dim plage_valeur3 As Range
    Dim courbe3 As Range

    Sheets("resultat").Select
    Set R3 = Sheets("resultat").Rows(1).Find("Mph3", , xlValues, xlWhole)
    If Not R3 Is Nothing Then 'condition : si au moins une occurrence est trouvée
    COL3 = R3.Column 'définit la colonne COL de la première occurrence trouvée
    DL3 = Sheets("resultat").Cells(Application.Rows.Count, COL3).End(xlUp).Offset(-1, 0).Row 'définit la dernière ligne éditée DL3 de la colonne COL3

    End If 'fin de la condition

    Set Lastcell3 = Sheets("resultat").Cells(DL3, COL3)
    Set Firstcell2 = Sheets("resultat").Cells(1, COL2).Offset(0, 1)
    Set LastD = Range("D" & Rows.Count).End(xlUp)
    Set plage_AD = Sheets("resultat").Range("A1:" & LastD.Address)
    Set plage_valeur3 = Sheets("resultat").Range(Firstcell2, Lastcell3)
    Set courbe3 = Union(plage_valeur3, plage_AD)
    Sheets("graphique phase 3").Select

    Sheets("graphique phase 3").Select ' créer graphe phase 3 avec source donnée range courbe3
    Charts.Add ' dans la feuille graphique phase 3
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=courbe3
    ActiveChart.Location Where:=xlLocationAsObject, Name:="graphique phase 3"

    ActiveSheet.ChartObjects("Graphique 1").Activate ' Selectionne graphe 3 et modifie taille et position
    ActiveChart.ChartArea.Select
    ActiveSheet.Shapes("Graphique 1").Height = 402.5196850394
    ActiveSheet.Shapes("Graphique 1").Width = 688.8188976378
    ActiveSheet.Shapes("Graphique 1").IncrementLeft -148.8
    ActiveSheet.Shapes("Graphique 1").IncrementTop -101.4
    ActiveChart.ClearToMatchStyle
    ActiveChart.ChartStyle = 231 ' Selectionne style graphe
    ActiveChart.Axes(xlCategory).Select
    ActiveChart.Axes(xlCategory).TickLabelSpacing = 1
    ActiveChart.Axes(xlCategory).TickLabelSpacing = 100
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MinimumScale = 0
    ActiveChart.Axes(xlValue).MajorGridlines.Select
    Selection.Delete

    ActiveSheet.ChartObjects("Graphique 1").Activate ' Ajoute titre axe Y
    ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
    ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
    ActiveChart.Axes(xlValue).AxisTitle.Select
    ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Échauffement (k)" ' Nom titre axe y = Echauffement (k)
    Selection.Format.TextFrame2.TextRange.Font.Size = 20 ' Change taille texte

    End Sub
    0