VBA Determine order of objects in "for each loops"

Viewed 1315

How can I take control of the order my charts appaer in the for each loop? Right now the charts are selected by random; Chart 2, Chart 7, Chart 5 etc.

Should I rename the pre-defined chart names? If so, how do I do that?

    ...
    'Loop charts
    ThisWorkbook.Activate
    Dim objCht As Object
    Dim i As Integer
    i = 1
    For Each objCht In Worksheets(Detailed.Name).ChartObjects

        With objCht '.Chart
            ThisWorkbook.Activate
            .Copy
            dataFile.Activate
            Select Case i
                Case 1
                    Application.Goto Range("B2")
                Case 2
                    Application.Goto Range("B17")
                Case 3
                    Application.Goto Range("R17")
                Case 4
                    Application.Goto Range("J17")
                Case 5
                    Application.Goto Range("N17")
                Case 6
                    Application.Goto Range("J2")
                Case Else
                    MsgBox "Hmmmm...."
            End Select
            ActiveSheet.PasteSpecial Format:="Picture (Enhanced Metafile)", Link:=False, DisplayAsIcon:=False
        End With
        i = i + 1

    Next objCht
    ...
3 Answers
Related