Bonjour à tous,
Après maintes recherches sur le net, pas moyen de trouver une solution à mon problème.
J'ai un tableau de données comportant plusieurs colonnes et de 1 à 20 lignes. Sur ces lignes, considérons un numéro d'essais (j'effectue des essais sur un certain produit), identifié par "Tally #"
Je souhaite tracer dans un graph l'évolution de mes résultats d'essais (dont les data sont dans les colonnes) en fonction de ce Tally #. J'utilise donc un graphique de type "Ligne". La problème, c'est qu'en sélectionnant l'entièreté de la plage, mon axe des X comportera 20 entrées. Lorsque je n'ai que 2 ou 3 essais répertoriés, l'effet d'échelle écrase mes données et ne rend pas lisible le graphe. J'aurais donc voulu pouvoir modifier l'étendue de la plage par une macro VBA que j'activerais au moyen d'un bouton "Auto-scale" afin de ne réduire la plage qu'au nombre de lignes complétées. Il y aura toujours le même nombre de colonnes.
En passant par l'enregistreur de macro, j'ai pu avoir le code permettant de changer la plage. Il me suffit donc de trouver les coordonnées de la plage qui m'intéresse. Oui mais voila, lorsque je l'injecte dans le range de mon sourcedata, je perds les étiquettes de l'axe des X et ma colonne "Tally #" qui me servait à répertorier mes essais se retrouve tracée sur le graphe.
Si quelqu'un a une astuce SVP, je suis preneur!
Je vous joins un fichier exemple avec mon tableau:
Et voici mon code qui me pose soucis (excusez le manque de concision, j'apprends VBA par moi-même et ne produit donc pas un code forcément très optimisé...), qui se trouve dans un module:
Sub Autoscale()
' Autoscale Macro
Dim NoLigne1 As Integer
Dim NoLigne2 As Integer
Dim NoCol1 As Integer
Dim NoCol2 As Integer
NoLigne1 = 0
NoLigne2 = 0
NoCol1 = 0
NoCol2 = 0
Sheets("Graphs").Activate
NoLigne1 = Cells(35, 3) 'va rechercher le numéro de ligne de la première cellule de ma plage graphique
NoLigne2 = Cells(36, 3) 'va rechercher le numéro de ligne de la dernière cellule de ma plage graphique
NoCol1 = Cells(35, 4) 'va rechercher le numéro de colonne de la première cellule de ma plage graphique
NoCol2 = Cells(36, 4) 'va rechercher le numéro de colonne de la dernière cellule de ma plage graphique
'Range(Cells(NoLigne1, NoCol1), Cells(NoLigne2, NoCol2)).Address me renverra donc la plage de données que je veux faire apparaître dans mon graphe
ActiveSheet.ChartObjects("Graphique 3").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range(Cells(NoLigne1, NoCol1), Cells(NoLigne2, NoCol2))
End Sub
Merci d'avance pour votre aide qui me sera très précieuse!
A bientôt,
Mickael