Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Création de graphiques

demonsares

XLDnaute Junior
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 :
Code:
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

Qui allait dans le code de la manière suivante :

Code:
    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

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...

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
 

Pièces jointes

  • Fichier Forum.xlsm
    96.4 KB · Affichages: 37

STephane

XLDnaute Occasionnel
Bonjour

Au niveau du code actuel, rajoute l'instruction ci-dessous au début de Macro1 pour en accélérer l'exécution.
Application.ScreenUpdating = False

  • Ta macro actuelle semble te créer trop de feuilles !?
  • Si tu veux que les séries de données 101 à 107, tu peux regarder le fichier ci-joint.
  • Tu voudrais rajouter à ce graphique d'autres séries ?
  • Peux-tu présenter un graphique de ce que tu souhaiterais obtenir ?
 

Pièces jointes

  • XLD Fichier Forum.xlsm
    175.9 KB · Affichages: 29

Discussions similaires

Réponses
1
Affichages
432
Réponses
0
Affichages
352
Réponses
4
Affichages
453
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…