Code graphique à modifier pour exclure cellules vides

Bonjour,

J'ai pu adapter le code de Jean-Eric (merci à lui) pour faire des graphiques. Afin de l'améliorer encore, j'aurais aimé savoir quoi ajouter afin qu'il ne prenne pas les cellules vides dans la sélection. Vous verrez dans le code ci dessous que les deux plages sélectionnées vont de A1 à A31 et de c1 à c31. Les cellules vides peuvent se trouver sur les dernières cellules (le plus souvent) mais parfois entre deux cellules pleines. Bref, les cellules vides ne sont pas toujours contiguës.

Merci pour votre aide.

Sub graphe31a()
'
' graphe31a Macro

Dim wsData As Worksheet, wsChart As Worksheet
Dim rngChart As Range
Dim objChart As ChartObject
Dim objLE As LegendEntry

ActiveSheet.unprotect Password:="toto"

    Application.ScreenUpdating = False

    Set wsData = Feuil241
    Set wsChart = ActiveSheet

    On Error Resume Next
    wsChart.ChartObjects(1).Delete
    On Error GoTo 0

    Set rngChart = wsData.Cells(3, 1).CurrentRegion ' Attention!...

    Set objChart = wsChart.ChartObjects.Add _
            (Left:=wsChart.Columns("c").Left, _
            Top:=wsChart.Rows(9).Top, _
            Width:=600, _
            Height:=250)

    With objChart.Chart
        .ChartType = xlColumnClustered
        .SetSourceData Source:=Feuil241.Range("A1:A31,C1:C31")
        .HasTitle = True
        .ChartTitle.Text = "MOYENNES E31A"
        .HasLegend = False
    End With

    Set objChart = Nothing
    Set rngChart = Nothing
    Set wsChart = Nothing: Set wsData = Nothing
ActiveSheet.protect Password:="toto", DrawingObjects:=False, Contents:=True, Scenarios:=True

End Sub

Bonjour,

Il existe beaucoup de solutions différentes pour règler cette question ...

Dans ta feuille, tu peux utiliser la fonction NA

https://support.office.com/fr-ch/article/NA-NA-fonction-5469c2d1-a90c-4fb5-9bbc-64bd9bb6b47c

Bonjour,

A tester et à adapter en conséquence.

Cdlt.

Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim lRow As Long
Dim rngX As Range, rngY As Range
Dim objChart As ChartObject

    Set ws = ActiveSheet

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

    With ws
        lRow = .Cells(Rows.Count, 1).End(xlUp).Row
        Set rngY = .Range(.Cells(2, 3), .Cells(lRow, 3)).SpecialCells(xlCellTypeConstants)
        Set rngX = rngY.Offset(, -2)
        Set objChart = .ChartObjects.Add(250, 60, 400, 250)

        With objChart.Chart
            .ChartType = xlColumnStacked
            With .SeriesCollection.NewSeries
                .Values = rngY
                .XValues = rngX
            End With
        End With
    End With

    Set objChart = Nothing
    Set rngX = Nothing: Set rngY = Nothing
    Set ws = Nothing

End Sub

Merci. je vais essayer d'adapter cela.

Re,

Prends ton temps, et si tu as des difficultés, n'hésite pas à joindre un fichier.

Cdlt.

Merci Jean Eric.

Tu sais il y a encore seulement qques jours, j'avais zéro connaissance (en VBA) donc j'essaie de m'accrocher. il faut donc que je lise le code que vous fournisser, que j'essaie de le comprendre et ensuite que je vois là où je dois modifier des trucs.

Pour chaque modification que j'apporte je fais des recherches sur google pour le langage, puis j'écris. J'oublie toujours des "", des ; des , où je ne sais quoi.. Donc je relis et je relis....

En // à cela, je fais des macros avec l'enregistreur quand c'est relativement simple. J'arrive même à en écrire qqunes aujourd'hui (très simple).

MAIS TOUT CELA SERAIT IMPOSSIBLE SANS VOTRE AIDE.

Vraiment un GRAND MERCI car j'ai un projet à coeur en ce moment et j'y passe toutes mes journées en plus du boulot et quand je vois tout ce que vous faites vous aussi... Chapeau.

Re,

Si tu travailles avec Office 2013, l'aide VBA est désormais dans les nuages.

Un lien pour faire tes courses. Les aides sont en langue anglaise, mais bon...

https://www.microsoft.com/en-us/download/details.aspx?id=40326

Sinon, un site incontournable pour tes débuts :

http://boisgontierjacques.free.fr/

Il en existe évidemment d'autres...

Cdlt.

Merci jean Eric pour tes liens.

Cdt

Bonjour,

Toujours à essayer d'adapter le code envoyé le 7 juin?

Cdlt.

Bonjour,

Pour l'instant non car le rendu visuel est tout à fait exploitable en l'état. En plus, dans mes formules j'avais prévu une formule "si" qui renvoyait à un "" donc le graphique reste relativement propre. De plus, ce projet suit les résultats sur 3 ans. par conséquent, il y a 1 chance sur x (valeur importante) que la valeur de la cellule reste vide. Donc dans le temps je me suis posé un souci inutilement.

Merci

Non là j'essaie

https://forum.excel-pratique.com/excel/filtre-puis-graphique-super-compliqe-t65190.html

Enfin c'est trop compliqué pour moi. A la limite je suis capable de faire la macro d'un graphique pour un individu pour un niveau mais il faut que je la copie/colle autant de fois qu'il y a de possibilités en changeant à chaque fois les paramètres... Autant dire un travail de fou.....

Rechercher des sujets similaires à "code graphique modifier exclure vides"