'Remove Marks on Charts

I have a problem with my code, I want to evaluate a Report with Charts.

What my Macro currently does is, Create for every single column a Row for a nominal, upper, lower tolerance. Then It creates with this values a chart. After this it starts with the Sorting and then it removes the Marker Points, but here my Problems already start.

I would like to create the charts later for example on pos A100 or A50 or something. Then the Marker Points, I would like to keep the Points on the result line but not on the 3 created, but I found no way 

Remove the Markers, but it removes all, i would really like to remove them only for
FullSeriesCollection(2).format.Line
FullSeriesCollection(3).format.Line
FullSeriesCollection(4).format.Line

Would be nice if someone would have an idea.. :)

Thanks in advance,


'    Unload UFormTools
    UFormTools.Hide

    Application.ScreenUpdating = False
    
    Sheets("Original Values").Select


Dim lngC As Long, lngR As Long
    Dim i As Long
    Dim c As Byte
    
    Application.ScreenUpdating = False
   
    With ActiveSheet
        lngC = (.Cells(17, 4).End(xlToRight).Column - 4) * 4
       
        For i = 4 To lngC Step 4
            lngR = .Cells(.Rows.Count, i).End(xlUp).Row
            For c = 1 To 3
                .Columns(i + c).EntireColumn.Insert
            Next c
            .Cells(17, i).AutoFill Destination:=.Range(.Cells(17, i), .Cells(17, i + 3)), Type:=xlFillCopy
            .Range(.Cells(28, i + 1), .Cells(lngR, i + 1)).Value = .Cells(18, i).Value
            .Range(.Cells(28, i + 2), .Cells(lngR, i + 2)).Value = .Cells(18, i).Value + .Cells(19, i).Value
            .Range(.Cells(28, i + 3), .Cells(lngR, i + 3)).Value = .Cells(18, i).Value + .Cells(20, i).Value

            .Shapes.AddChart2(332, xlLineMarkers).Select
            With ActiveChart
                .SetSourceData Source:=Union(ActiveSheet.Range(ActiveSheet.Cells(17, i), ActiveSheet.Cells(17, i + 3)), _
                                             ActiveSheet.Range(ActiveSheet.Cells(28, i), ActiveSheet.Cells(lngR, i + 3)))
'                .Legend.Delete
                .ChartTitle.Text = ActiveSheet.Cells(17, i).Value
                .ChartTitle.format.TextFrame2.TextRange.Characters.Text = ActiveSheet.Cells(17, i).Value
                With .ChartTitle.format.TextFrame2.TextRange.Characters(1, Len(ActiveSheet.Cells(17, i).Value)).ParagraphFormat
                    .TextDirection = msoTextDirectionLeftToRight
                    .Alignment = msoAlignCenter
                End With
       
                With .FullSeriesCollection(3).format.Line
                    .Visible = msoTrue
                    .ForeColor.RGB = RGB(255, 0, 0)
                    .Transparency = 0
                End With
                With .FullSeriesCollection(4).format.Line
                    .Visible = msoTrue
                    .ForeColor.RGB = RGB(255, 0, 0)
                    .Transparency = 0
                End With
                With .FullSeriesCollection(2).format.Line
                    .Visible = msoTrue
                    .ForeColor.ObjectThemeColor = msoThemeColorText1
                    .ForeColor.TintAndShade = 0
                    .ForeColor.Brightness = 0
                    .Transparency = 0
                    .Visible = msoTrue
                    .DashStyle = msoLineDash
                    .Weight = 1.5
                End With
                With .FullSeriesCollection(1).format.Line
                    .Visible = msoTrue
                    .Weight = 3
                End With
                .FullSeriesCollection(1).Smooth = True
                .Axes(xlValue).MinimumScaleIsAuto = True
                .Axes(xlValue).MinimumScaleIsAuto = True
            End With
       
        Next i
    End With
    
    '    Sort and Arrange Charts, but another Position to Start would be nice.. (for example A100)
    
         Dim MyWidth As Single, MyHeight As Single
         Dim NumWide As Long
         Dim iChtIx As Long, iChtCt As Long

         MyWidth = 300
         MyHeight = 200
         NumWide = 4

         iChtCt = ActiveSheet.ChartObjects.Count
         For iChtIx = 1 To iChtCt
             With ActiveSheet.ChartObjects(iChtIx)
                 .Width = MyWidth
                 .Height = MyHeight
                 .Left = ((iChtIx - 1) Mod NumWide) * MyWidth
                 .Top = Int((iChtIx - 1) / NumWide) * MyHeight
             End With
         Next
         
    '    Remove the Markers, but it removes all, i would really like to remove them only for
    '    FullSeriesCollection(2).format.Line
    '    FullSeriesCollection(3).format.Line
    '    FullSeriesCollection(4).format.Line
         
Dim cht As ChartObject
Dim srs As Series
Dim MarkerCount As Long

  For Each cht In ActiveSheet.ChartObjects

      cht.Activate
    
      For Each srs In ActiveChart.SeriesCollection
         If srs.MarkerStyle <> xlMarkerStyleNone Then
          srs.MarkerStyle = xlMarkerStyleNone
          MarkerCount = MarkerCount + 1
        End If
      Next srs
  
  Next cht
  
Range("A1").Select

  Application.ScreenUpdating = True


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source