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

XL 2021 macro VBA excel

  • Initiateur de la discussion Initiateur de la discussion souhaib ad
  • 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 !

souhaib ad

XLDnaute Nouveau
Bonjour,

Je souhaite modifier cette macro pour qu'elle trace trois séries sur la même échelle d'axe X et d'axe Y.

Sub CalculEtPlacement()
Dim ws As Worksheet
Dim chartObj As ChartObject
Dim X1 As Double, Y1 As Double, X2 As Double, Y2 As Double
Dim X3 As Double, Y3 As Double, X4 As Double, Y4 As Double
Dim SerieX As Range
Dim SerieY As Range
Dim Cell As Range
Dim DerniereLigne As Long

' Ajouter le texte dans la cellule G22
Cells(22, "G").Value = "MAX"
' Ajouter le texte dans la cellule H22
Cells(22, "H").Value = "MIN"

' Calcul sur la cellule G23 : B14 + B14 * 0.01
Cells(23, "G").Value = Cells(14, "B").Value + Cells(14, "B").Value * 0.01

' Calcul sur la cellule H23 : B14 - B14 * 0.01
Cells(23, "H").Value = Cells(14, "B").Value - Cells(14, "B").Value * 0.01

'Définir la feuille de calcul active
Set ws = ThisWorkbook.ActiveSheet

'Définir la dernière ligne de données
DerniereLigne = ws.Cells(ws.Rows.Count, "F").End(xlUp).Row

'Initialiser les coordonnées des points
X1 = ws.Cells(23, "E").Value
Y1 = ws.Cells(23, "G").Value
X2 = ws.Cells(ws.Rows.Count, "E").End(xlUp).Value
Y2 = ws.Cells(23, "G").Value
X3 = ws.Cells(23, "E").Value
Y3 = ws.Cells(23, "H").Value
X4 = ws.Cells(ws.Rows.Count, "E").End(xlUp).Value
Y4 = ws.Cells(23, "H").Value

'Initialiser les séries de données
For Each Cell In ws.Range("F23:F" & DerniereLigne)
If Cell.Value <> "" And IsNumeric(Cell.Value) Then
If SerieX Is Nothing Then
Set SerieX = Cell.Offset(0, -1)
Set SerieY = Cell
Else
Set SerieX = Union(SerieX, Cell.Offset(0, -1))
Set SerieY = Union(SerieY, Cell)
End If
End If
Next Cell

'Créer un nouvel objet graphique
Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)

'Ajouter les séries de données pour tracer les lignes
With chartObj.Chart
.SeriesCollection.NewSeries
With .SeriesCollection(1)
.XValues = Array(X1, X2)
.Values = Array(Y1, Y2)
.ChartType = xlLine
.Name = "MAX"
End With
.SeriesCollection.NewSeries
With .SeriesCollection(2)
.XValues = Array(X3, X4)
.Values = Array(Y3, Y4)
.ChartType = xlLine
.Name = "MIN"
End With
.SeriesCollection.NewSeries
With .SeriesCollection(3)
.XValues = SerieX
.Values = SerieY
.ChartType = xlXYScatter
.Name = "TEMPERATURE"
End With


'Activer les titres des axes
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).HasTitle = True

'Définir le texte des titres des axes
.Axes(xlCategory, xlPrimary).AxisTitle.Text = "CYCLE"
.Axes(xlValue, xlPrimary).AxisTitle.Text = "TEMPERATURE °C"
End With
End Sub
 
- 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

Réponses
0
Affichages
367
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
4
Affichages
332
Réponses
2
Affichages
371
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…