Problème création graphique plage variable
Résolu/Fermé
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
-
15 juin 2017 à 12:46
Wazzid Messages postés 14 Date d'inscription mercredi 14 juin 2017 Statut Membre Dernière intervention 16 juin 2017 - 16 juin 2017 à 16:07
Wazzid Messages postés 14 Date d'inscription mercredi 14 juin 2017 Statut Membre Dernière intervention 16 juin 2017 - 16 juin 2017 à 16:07
A voir également:
- Problème création graphique plage variable
- Creation compte gmail - Guide
- Changer carte graphique - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création organigramme - Guide
9 réponses
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
15 juin 2017 à 14:05
15 juin 2017 à 14:05
Bonjour
Essaies ceci
Cdlmnt
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 15 juin 2017 à 15:10
Modifié le 15 juin 2017 à 15:10
Bonjour
Lorsque tu copies un code dans ton message, merci de le coller entre balise
j'ai omis de télécharger ton classeur
Edit: 14h37
petites modif après consultation du classeur
Bonjour CCm excuse moi je n'avais pas rafraichi
Michel
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
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
15 juin 2017 à 15:10
15 juin 2017 à 15:10
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
>
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
Modifié le 15 juin 2017 à 15:13
Modifié le 15 juin 2017 à 15:13
ma proposition corrige tes erreurs: a toi de plancher un peu pour comprendre et progresser
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
>
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
15 juin 2017 à 16:01
15 juin 2017 à 16:01
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
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
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
15 juin 2017 à 16:56
15 juin 2017 à 16:56
Essaies ceci
> michel. ça va ? et aucun pb pour l'incruste, bien au contraire ...
Cdlmnt
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
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
16 juin 2017 à 11:02
16 juin 2017 à 11:02
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,
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,
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
16 juin 2017 à 15:28
16 juin 2017 à 15:28
tes plages sont déjà des "Range"
essaies ceci
Set courbe2 =Union(plage_valeur2, plage_AD)
essaies ceci
Set courbe2 =Union(plage_valeur2, plage_AD)
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
Modifié le 16 juin 2017 à 15:37
Modifié le 16 juin 2017 à 15:37
c'est la même que celle que j'ai essayé juste au dessus non ?
Edit : à non ça marche en enlevant le sheets("resultat") ...
Set courbe2 = Sheets("resulat").Union(plage_valeur2, plage_AD)
Edit : à non ça marche en enlevant le sheets("resultat") ...
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
16 juin 2017 à 15:44
16 juin 2017 à 15:44
Eh oui ...
J'aurai certainement du écrire
tes plages sont déjà des "Range" de la feuille "resultat"
J'aurai certainement du écrire
tes plages sont déjà des "Range" de la feuille "resultat"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
16 juin 2017 à 08:11
16 juin 2017 à 08:11
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
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
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
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
16 juin 2017 à 10:49
16 juin 2017 à 10:49
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.
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.
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
16 juin 2017 à 11:23
16 juin 2017 à 11:23
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
Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)
Bonne journée à tous
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
16 juin 2017 à 13:01
16 juin 2017 à 13:01
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.
Cordialement
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
ccm81
Messages postés
10899
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 octobre 2024
2 422
Modifié le 16 juin 2017 à 14:51
Modifié le 16 juin 2017 à 14:51
Essaies ceci (tu concaténes tes deux adresses en les séparant par ":" - il y a 2 "d" à Address)
Cdlmnt
Set plage_valeur2 = Sheets("resultat").Range(Firstcell.Address & ":" & Lastcell2.Address)
Cdlmnt
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
16 juin 2017 à 15:05
16 juin 2017 à 15:05
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 ...
Même problème avec ce code là
Ces Range ça me rend dingue ...
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 ...
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
16 juin 2017 à 15:42
16 juin 2017 à 15:42
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
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
Wazzid
Messages postés
14
Date d'inscription
mercredi 14 juin 2017
Statut
Membre
Dernière intervention
16 juin 2017
16 juin 2017 à 16:07
16 juin 2017 à 16:07
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.
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
15 juin 2017 à 15:02
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