Bonjour à toutes, à tous et au forum,
Me voici, de retour, pour vous jouer un mauvais tour !
A - Problématique et état actuel
Je suis actuellement en train de réaliser un fichier Excel permettant de créer automatiquement des graphiques à partir d'une base de donnée.
Le fichier Excel est en pièce jointe.
C'est une version grandement simplifiée de mon fichier définitif.
Je n'ai pas pu insérer le fichier définitif car : "Le fichier est trop gros, la taille maximum autorisée est 1 Mio."
Grâce au bouton : Création graphique, dans l'onglet "Procédure", la MACRO vient créer un nombre d'onglet et un nombre de graphiques égale au nombre de VOIES DE MESURE (soit 7 dans mon cas : 101 - 102 - 103 - 104 - 105 - 106 et 107).
Les graphiques fonctionnent et il y a déjà la série de données : Valeur qui s'affiche.
B - Mon blocage
J'aimerai pouvoir ajouter 4 séries de données en plus qui seront : Tolérance Haute / Consigne / Moyenne / Tolérance Basse sur chaque graphique.
Il faut tenir compte que le nombre de colonne et de lignes sont des variables...
Pour le premier cas concernant les valeurs, une personne m'avait aidé et m'avait fait passé par une fonction :
Qui allait dans le code de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Function ColLetter(range As range) As String Dim oRegEx As Object Set oRegEx = CreateObject("VBScript.RegExp") With oRegEx .Pattern = "\d+" ColLetter = .Replace(range.Address(False, False), "") End With Set oRegEx = Nothing End Function
J'aimerai déployer cette méthode pour mes 4 autres séries de données, mais je n'ai pas eu d'explication quant à cette partie du code. En cherchant sur internet j'ai rien trouvé / compris...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sheets("Données ciblées").Select range(Cells(2, 5 + i), Cells(NumLig, 5 + i)).Select ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatter ActiveChart.PlotArea.Select ActiveChart.SeriesCollection(1).Name = "='Données ciblées'!$" & ColLetter(Cells(1, 5 + i)) & "$1" ActiveChart.SeriesCollection(1).XValues = "='Données ciblées'!$E$2:$E$" & NumLig ActiveChart.SeriesCollection(1).Values = "='Données ciblées'!$" & ColLetter(Cells(1, 5 + i)) & "$2:$" & ColLetter(Cells(1, 5 + i)) & "$" & NumLig With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With
C - Résumé
J'aimerai cliquer sur un bouton, celui-ci me créé X onglets et X graphiques avec X étant le nombre de voies (101 - 102 - 103 ...)
Chaque graphique comporterai 5 séries de données : Valeur / Tolérance Haute / Consigne / Moyenne / Tolérance Basse
Cordialement
Oparion
Partager