Bonjour,
Je souhaite tracer dynamiquement un graphique. Sur une UserForm, une liste de données est "cochable" et "décochable" via l'utilisation de CheckBox. Lorsque l'utilisateur appuie sur le bouton "Tracer le graphe", la macro vient lire l'UserForm d'option de graphe, et pour chaque case cochée ajoute la plage de données sources à la plage générale avant de créer le graphique avec la plage générale.
Comment dois-je faire pour déclarer ma plage générale comme étant vide au début du remplissage?
J'ai essayé toutes sortes de choses telles que :
Set Plage = ""
Set Plage = Range()
Set Plage = []
Set Plage = Null
Set Plage = Empty
Set Plage as Null
Set Plage as Empty
Il ne me manque que cette petite information pour laquelle j'ai beau chercher sur le net en tapant "plage vide", "déclarer plage vide" etc.... Rien à faire.
Ci dessous le petit bout de code que j'utilise :
Je vous remercie d'avance pour votre aide, en attendant je vais essayer d'optimiser tout ça pour que ça effectue moins de calculs et soit plus rapide.
Bonne journée !
Je souhaite tracer dynamiquement un graphique. Sur une UserForm, une liste de données est "cochable" et "décochable" via l'utilisation de CheckBox. Lorsque l'utilisateur appuie sur le bouton "Tracer le graphe", la macro vient lire l'UserForm d'option de graphe, et pour chaque case cochée ajoute la plage de données sources à la plage générale avant de créer le graphique avec la plage générale.
Comment dois-je faire pour déclarer ma plage générale comme étant vide au début du remplissage?
J'ai essayé toutes sortes de choses telles que :
Set Plage = ""
Set Plage = Range()
Set Plage = []
Set Plage = Null
Set Plage = Empty
Set Plage as Null
Set Plage as Empty
Il ne me manque que cette petite information pour laquelle j'ai beau chercher sur le net en tapant "plage vide", "déclarer plage vide" etc.... Rien à faire.
Ci dessous le petit bout de code que j'utilise :
Code:
Dim NomOperation, NomGraphique As String
Dim Ligne As Long
Dim Plage, XPlage As Range
Dim Ctrl As Control
Application.ScreenUpdating = False
Set Plage = ?????
Set XPlage = ?????
Sheets("PageDonnees").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("$A$13:$B$13")
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(1).Delete
For Each Ctrl In OptionsClosCouvert.Controls
Ligne = 1
If (TypeOf Ctrl Is MSForms.CheckBox) And Ctrl.Value Then
While Not Range("A" & Ligne).Value = Ctrl.Caption
Ligne = Ligne + 1
Wend
Set Plage = Union(Plage, Cells(Ligne, Colonne))
Set XPlage = Union(XPlage, Cells(Ligne, 1))
End If
Next Ctrl
ActiveChart.SeriesCollection.Add Source:=Plage
ActiveChart.SeriesCollection(1).Name = Cells(2, Colonne).Value
ActiveChart.SeriesCollection(1).XValues = XPlage
ActiveChart.ChartType = xlRadar
Je vous remercie d'avance pour votre aide, en attendant je vais essayer d'optimiser tout ça pour que ça effectue moins de calculs et soit plus rapide.
Bonne journée !
Dernière édition: