Réduire Codes VBA

Bonjour,

Je suis nouveau dans la programmation VBA et j'ai programmé un petite fichier pour générer une courbe selon les données saisies. Je trouve que les codes sont trop long et je voudrais le reduire au strict minimum pour afficher la courbe. merci de m'y aider.

bonsoir,

Un petit essai en pièce jointe pour alimenter un peu le débat.

A+

Bonjour,

Je ne comprends pas tout!...

Cdlt.

idem...

on dirait que galopin est sur le coup avec sont EXL2016

En fait, j'ai pas saisie directement les codes, c'est les codes générés lorsque j'ai fait " faire un enregistrement". En cliquant sur le "afficher le graphe, les données sont récupérées dans le tableau à gauche pour former le graphique.

Re,

Fais ton graphique manuellement et on erra pour l'automatiser.

Cdlt.

En fait, le graphique est à reproduire pour plusieurs personnes (150 environs) chacun avec des données différentes. Les caractéristiques du graphiques doivent etre identiques pour chacune des personnes

Tu voudrais quelque chose comme ca?

Bonjour,

Une proposition à étudier et à adapter.

Cdlt.

12karamoko512.xlsm (99.67 Ko)
Option Explicit

Public Sub Create_Chart()
Dim ws As Worksheet
Dim objChart As ChartObject
Dim n As Long, i As Long
Dim Cell As Range, rngX As Range, rngY As Range
Dim sTitle As String

    Set ws = ActiveWorkbook.Worksheets("Graphique")

    On Error Resume Next
    ws.ChartObjects("MyG").Delete
    On Error GoTo 0

    With ws

        sTitle = .Cells(1, 1).Value & " - " & .Cells(1, 2).Value

        n = .Cells(Rows.Count, 1).End(xlUp).Row

        For i = 4 To n
            If IsEmpty(.Cells(i, 2)) Or .Cells(i, 2) = 0 Then
                .Cells(i, 18).Value = CVErr(xlErrNA)
            Else
                .Cells(i, 18).Value = .Cells(i, 2).Value
            End If
        Next i

        Set rngX = .Cells(4, 1).Resize(n - 3)
        Set rngY = .Cells(4, 18).Resize(n - 3)
        Set Cell = .Cells(4, 4)

        Set objChart = .ChartObjects.Add(Cell.Left, Cell.Top, 550, 275)
        objChart.Name = "MyG"

        With objChart.Chart
            .ChartType = xlLine
            .ChartStyle = 230
            .HasTitle = True
            .ChartTitle.Characters.Text = sTitle
            .SeriesCollection.NewSeries
            With .SeriesCollection(1)
                .XValues = rngX
                .Values = rngY
                .Name = "Points AC/AD"
            End With
            With .FullSeriesCollection(1)
                .ApplyDataLabels
                .DataLabels.Position = xlLabelPositionBelow
            End With
            .Axes(xlCategory).TickLabels.NumberFormat = "dd"
            .Axes(xlValue).Delete
        End With

    End With

End Sub

On s'éloigne du titre fu topic, plus il y a de proposion plus le code est long

Super, ce dernier fichier fait l'affaire. Si possible pourrais-je avoir la un commentaire sur les différente lignes ? Merci d'avance

Re,

Pas beaucoup de temps ce weekend pour la chose.

Mais, peut être que tu peux commencer par dire ce que tu ne comprends pas.

Il suffit de lire.

La procédure est claire.

Cdlt.

Rechercher des sujets similaires à "reduire codes vba"