Bonjour,
J'utilise un fichier Excel avec un graphe (Graph2) et les données de ce Graphe (Feuil3).
J'utilise un userform afin de filtrer les valeurs de ma Feuil3 pour que le graphe soit plus clair.
La macro d'initialisation de mon userform est celle ci en gros je récupère les valeurs filtrables dans une combobox).
Private Sub UserForm_Initialize()
Feuil3.Activate
Dim j As Integer
'Récupère les données de la colonne C
For j = 1 To Range("A65536").End(xlUp).Row
ComboBox1 = Range("C" & j)
'...et filtre les doublons
If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("C" & j)
Next j
'Tri par ordre alphabetique
With ComboBox1
For i = 0 To .ListCount - 1
For j = 0 To .ListCount - 1
If .List(i) < .List(j) Then
strTemp = .List(i)
.List(i) = .List(j)
.List(j) = strTemp
End If
Next j
Next i
End With
Graph2.Activate
End Sub
Puis en cliquant sur mon bouton de filtrage, je filtre mes données pour que le graphe soit plus clair.
Le probleme, c'est que du coup l'échelle de mon graphe est mauvaise (par exemple taille de la police=4 lorsque non filtrée, avec 100 valeurs, donc lisible, mais elle reste à 4 lorsque filtrée avec 5 valeurs..).
J'ai fait ce code, qui met manuellement la taille à 8 :
Private Sub CommandButton1_Click()
Sheets("SimulationTable").Select
Columns("C:C").Select
Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Text, Operator:=xlAnd
Graph2.Activate
'Modifie la taille de la police de l'axe
ActiveChart.ChartArea.Select
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.AutoScaleFont = False
With Selection.TickLabels.Font
.Size = 8
End With
End Sub
Ce que j'aimerais :
que la taille de mon échelle se mette automatiquement en fonction du nombre de valeur filtrée
(par exemple 8 si 10 valeurs, 7 si entre 10 et 20 etc..)
POuvez vous m'aider à améliorer ma macro ?
Merci
J'utilise un fichier Excel avec un graphe (Graph2) et les données de ce Graphe (Feuil3).
J'utilise un userform afin de filtrer les valeurs de ma Feuil3 pour que le graphe soit plus clair.
La macro d'initialisation de mon userform est celle ci en gros je récupère les valeurs filtrables dans une combobox).
Private Sub UserForm_Initialize()
Feuil3.Activate
Dim j As Integer
'Récupère les données de la colonne C
For j = 1 To Range("A65536").End(xlUp).Row
ComboBox1 = Range("C" & j)
'...et filtre les doublons
If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("C" & j)
Next j
'Tri par ordre alphabetique
With ComboBox1
For i = 0 To .ListCount - 1
For j = 0 To .ListCount - 1
If .List(i) < .List(j) Then
strTemp = .List(i)
.List(i) = .List(j)
.List(j) = strTemp
End If
Next j
Next i
End With
Graph2.Activate
End Sub
Puis en cliquant sur mon bouton de filtrage, je filtre mes données pour que le graphe soit plus clair.
Le probleme, c'est que du coup l'échelle de mon graphe est mauvaise (par exemple taille de la police=4 lorsque non filtrée, avec 100 valeurs, donc lisible, mais elle reste à 4 lorsque filtrée avec 5 valeurs..).
J'ai fait ce code, qui met manuellement la taille à 8 :
Private Sub CommandButton1_Click()
Sheets("SimulationTable").Select
Columns("C:C").Select
Selection.AutoFilter Field:=1, Criteria1:=ComboBox1.Text, Operator:=xlAnd
Graph2.Activate
'Modifie la taille de la police de l'axe
ActiveChart.ChartArea.Select
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.AutoScaleFont = False
With Selection.TickLabels.Font
.Size = 8
End With
End Sub
Ce que j'aimerais :
que la taille de mon échelle se mette automatiquement en fonction du nombre de valeur filtrée
(par exemple 8 si 10 valeurs, 7 si entre 10 et 20 etc..)
POuvez vous m'aider à améliorer ma macro ?
Merci