Création graphique VBA

Florian53

XLDnaute Impliqué
Bonjour,

Je dispose d'une macro qui me créer un graphique en fonction d'une base de données mais le problème et que par la suite je masque mes cellules et par défaut lors de la création du graphique la case " Afficher les lignes masquées" n'est pas cochés Comment écrire dans le code vba afin que la case soit cocher lors de sa création ?

Je voudrais savoir comment mettre mon graphique transparent c'est à dire sans fond de couleur ?

Voici mon code
Code:
Dim Grf As ChartObject
Dim Sh As Worksheet
 
Set Sh = Sheets("ASP")
'On supprime tous les graphiques
For Each Grf In Sh.ChartObjects
    Grf.Delete
Next Grf
'On crée notre graphique
Set Grf = Sh.ChartObjects.Add(140, 10, 500, 300)
With Grf.Chart
    .ChartType = xlLineMarkers
    .SeriesCollection.NewSeries
    With .SeriesCollection(1)
        .Values = Sh.Range("D2:D" & [A65536].End(xlUp).Row)
        .XValues = Sh.Range("B2:B" & [A65536].End(xlUp).Row)
    End With
End With
Set Grf = Nothing
Set Sh = Nothing

Cordialement
 

Pierrot93

XLDnaute Barbatruc
Re : Création graphique VBA

Bonjour,

essaye comme ceci :
Code:
Dim Grf As ChartObject
 Dim Sh As Worksheet
  
 Set Sh = Sheets("ASP")
 'On supprime tous les graphiques
 For Each Grf In Sh.ChartObjects
     Grf.Delete
 Next Grf
 'On crée notre graphique
 Set Grf = Sh.ChartObjects.Add(140, 10, 500, 300)
 With Grf.Chart
     .ChartType = xlLineMarkers
     .SeriesCollection.NewSeries
     With .SeriesCollection(1)
         .Values = Sh.Range("D2:D" & [A65536].End(xlUp).Row)
         .XValues = Sh.Range("B2:B" & [A65536].End(xlUp).Row)
     End With
.PlotVisibleOnly = False
 End With
 Set Grf = Nothing
 Set Sh = Nothing

pour la transparence, l'enregistreur de macro devrait te donner la syntaxe...

bon après midi
@+
 

Florian53

XLDnaute Impliqué
Re : Création graphique VBA

J'ai essayé avec l'enregistreur de macro mais sa ne fonctionne pas sa me mais que je rentre dans la mise en forme du graphique mais pas ce que je fais a l’intérieur.

Je n'ai pas non plus réussi à ma placer mon graph à un endroit précis .
 

Florian53

XLDnaute Impliqué
Re : Création graphique VBA

J'ai essayé comme ceci mais sa ne fonctionne pas:

Dim Grf As ChartObject
Dim Sh As Worksheet

Set Sh = Sheets("ASP")
'On supprime tous les graphiques
For Each Grf In Sh.ChartObjects
Grf.Delete
Next Grf
'On crée notre graphique
Set Grf = Sh.ChartObjects.Add(140, 10, 500, 300)
With ActiveSheet.ChartObjects(1)
.Left = Range("F5:O40").Left
.Top = Range("F5:O40").Top
.Width = Range("F5:O40").Width
.Height = Range("F5:O40").Height
End With
With Grf.Chart
.ChartType = xlLineMarkers
.SeriesCollection.NewSeries
With .SeriesCollection(1)
.Values = Sh.Range("D2:D" & [A65536].End(xlUp).Row)
.XValues = Sh.Range("B2:B" & [A65536].End(xlUp).Row)
End With
.PlotVisibleOnly = False
End With
Set Grf = Nothing
Set Sh = Nothing
 

Florian53

XLDnaute Impliqué
Re : Création graphique VBA

Encore un essai non productif pour moi je désespère que quelqu'un m'aide voici mon avancé:

Dim Grf As ChartObject
Dim Sh As Worksheet

Set Sh = Sheets("ASP")
'On supprime tous les graphiques
For Each Grf In Sh.ChartObjects
Grf.Delete
Next Grf
'On crée notre graphique
Set Grf = Sh.ChartObjects("Reaction Time").Add(140, 10, 500, 300)
With ActiveSheet.Shapes("Reaction Time")
.Left = Range("F5").Left
.Top = Range("F5").Top
End With
With Grf.Chart
.ChartType = xlLineMarkers
.SeriesCollection.NewSeries
With .SeriesCollection(1)
.Values = Sh.Range("D2:D" & [A65536].End(xlUp).Row)
.XValues = Sh.Range("B2:B" & [A65536].End(xlUp).Row)
End With
.PlotVisibleOnly = False
End With
Set Grf = Nothing
Set Sh = Nothing

End Sub
 

Florian53

XLDnaute Impliqué
Re : Création graphique VBA

J'ai trouvé mon erreur pour le placement là voilà corriger :

Sub Reaction_ASP()
'****************************************************
' Activation de la feuille " ASP "
Sheets("ASP").Activate
'****************************************************

Sheets("Feuil1").Range("A1:A1000").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("A1"), Unique:=True

Dim Grf As ChartObject
Dim Sh As Worksheet

Set Sh = Sheets("ASP")
'On supprime tous les graphiques
For Each Grf In Sh.ChartObjects
Grf.Delete
Next Grf
'On crée notre graphique
Set Grf = Sh.ChartObjects.Add(140, 10, 500, 300)
Grf.Name = "Reaction Time"
With ActiveSheet.Shapes("Reaction Time")
.Left = Range("F5").Left
.Top = Range("F5").Top
End With
With Grf.Chart
.ChartType = xlLineMarkers
.SeriesCollection.NewSeries
With .SeriesCollection(1)
.Values = Sh.Range("D2:D" & [A65536].End(xlUp).Row)
.XValues = Sh.Range("B2:B" & [A65536].End(xlUp).Row)
End With
.PlotVisibleOnly = False
End With
Set Grf = Nothing
Set Sh = Nothing

End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Création graphique VBA

Bonjour,

pour la transparence avec l'aide de lenregistreur, après adaptation ca donnerait ceci :
Code:
With .SeriesCollection(1)
 .Values = Sh.Range("D2" & [A65536].End(xlUp).Row)
 .XValues = Sh.Range("B2:B" & [A65536].End(xlUp).Row)
 End With
 .PlotVisibleOnly = False
 .PlotArea.Format.Fill.Visible = msoFalse
End With
 Set Grf = Nothing
 Set Sh = Nothing 
End Sub

bonne journée
@+
 

Statistiques des forums

Discussions
314 496
Messages
2 110 236
Membres
110 708
dernier inscrit
novy16