VBA code works with F8 but not when run












0















I have written some VBA code to insert an Embedded Picture into an Embedded Chart onto an Excel worksheet. The routine attempts to do this by copying the picture, adding an embedded chart, setting dimensions to the picture's dimensions, and then pasting the picture.



The thing is, it works with no errors when I step through it
with F8 (“Debug” → “Step Into”). 
The code looks simple enough, and I've experimented with placement of the Copy/Paste sequence, and nothing seems to get the picture to completed that final Paste step when running the macro.



Sub EP()
Sheet9.Shapes("Picture 2").Copy
Dim xcht As Chart: Set xcht = Sheet9.Shapes.AddChart.Chart
With xcht
.ChartArea.ClearContents
.ChartArea.Width = Sheet9.Shapes("Picture 2").Width
.ChartArea.Height = Sheet9.Shapes("Picture 2").Height
.Paste
End With
End Sub


It works perfectly with F8; the picture is pasted into the chart. 
Just not when actually running –
I ran with the green play button in the VBA editor,
ran it through the macro dialog box,
and ran it through a button on the worksheet. 
No change in results.



What is going wrong? 
How can I get this routine to run correctly by normal invocation? 
Any help is appreciated.










share|improve this question

























  • What does happen when you run the code normally?

    – Twisty Impersonator
    Jan 21 at 22:28











  • Do you get errors? What errors (the messages, not the numbers)? Where does the code stop, and what line is highlighted in yellow?

    – Jon Peltier
    Jan 30 at 2:21
















0















I have written some VBA code to insert an Embedded Picture into an Embedded Chart onto an Excel worksheet. The routine attempts to do this by copying the picture, adding an embedded chart, setting dimensions to the picture's dimensions, and then pasting the picture.



The thing is, it works with no errors when I step through it
with F8 (“Debug” → “Step Into”). 
The code looks simple enough, and I've experimented with placement of the Copy/Paste sequence, and nothing seems to get the picture to completed that final Paste step when running the macro.



Sub EP()
Sheet9.Shapes("Picture 2").Copy
Dim xcht As Chart: Set xcht = Sheet9.Shapes.AddChart.Chart
With xcht
.ChartArea.ClearContents
.ChartArea.Width = Sheet9.Shapes("Picture 2").Width
.ChartArea.Height = Sheet9.Shapes("Picture 2").Height
.Paste
End With
End Sub


It works perfectly with F8; the picture is pasted into the chart. 
Just not when actually running –
I ran with the green play button in the VBA editor,
ran it through the macro dialog box,
and ran it through a button on the worksheet. 
No change in results.



What is going wrong? 
How can I get this routine to run correctly by normal invocation? 
Any help is appreciated.










share|improve this question

























  • What does happen when you run the code normally?

    – Twisty Impersonator
    Jan 21 at 22:28











  • Do you get errors? What errors (the messages, not the numbers)? Where does the code stop, and what line is highlighted in yellow?

    – Jon Peltier
    Jan 30 at 2:21














0












0








0


1






I have written some VBA code to insert an Embedded Picture into an Embedded Chart onto an Excel worksheet. The routine attempts to do this by copying the picture, adding an embedded chart, setting dimensions to the picture's dimensions, and then pasting the picture.



The thing is, it works with no errors when I step through it
with F8 (“Debug” → “Step Into”). 
The code looks simple enough, and I've experimented with placement of the Copy/Paste sequence, and nothing seems to get the picture to completed that final Paste step when running the macro.



Sub EP()
Sheet9.Shapes("Picture 2").Copy
Dim xcht As Chart: Set xcht = Sheet9.Shapes.AddChart.Chart
With xcht
.ChartArea.ClearContents
.ChartArea.Width = Sheet9.Shapes("Picture 2").Width
.ChartArea.Height = Sheet9.Shapes("Picture 2").Height
.Paste
End With
End Sub


It works perfectly with F8; the picture is pasted into the chart. 
Just not when actually running –
I ran with the green play button in the VBA editor,
ran it through the macro dialog box,
and ran it through a button on the worksheet. 
No change in results.



What is going wrong? 
How can I get this routine to run correctly by normal invocation? 
Any help is appreciated.










share|improve this question
















I have written some VBA code to insert an Embedded Picture into an Embedded Chart onto an Excel worksheet. The routine attempts to do this by copying the picture, adding an embedded chart, setting dimensions to the picture's dimensions, and then pasting the picture.



The thing is, it works with no errors when I step through it
with F8 (“Debug” → “Step Into”). 
The code looks simple enough, and I've experimented with placement of the Copy/Paste sequence, and nothing seems to get the picture to completed that final Paste step when running the macro.



Sub EP()
Sheet9.Shapes("Picture 2").Copy
Dim xcht As Chart: Set xcht = Sheet9.Shapes.AddChart.Chart
With xcht
.ChartArea.ClearContents
.ChartArea.Width = Sheet9.Shapes("Picture 2").Width
.ChartArea.Height = Sheet9.Shapes("Picture 2").Height
.Paste
End With
End Sub


It works perfectly with F8; the picture is pasted into the chart. 
Just not when actually running –
I ran with the green play button in the VBA editor,
ran it through the macro dialog box,
and ran it through a button on the worksheet. 
No change in results.



What is going wrong? 
How can I get this routine to run correctly by normal invocation? 
Any help is appreciated.







microsoft-excel vba charts






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 21 at 23:43









Scott

15.9k113990




15.9k113990










asked Jan 18 at 20:15









rachaelsrachaels

61




61













  • What does happen when you run the code normally?

    – Twisty Impersonator
    Jan 21 at 22:28











  • Do you get errors? What errors (the messages, not the numbers)? Where does the code stop, and what line is highlighted in yellow?

    – Jon Peltier
    Jan 30 at 2:21



















  • What does happen when you run the code normally?

    – Twisty Impersonator
    Jan 21 at 22:28











  • Do you get errors? What errors (the messages, not the numbers)? Where does the code stop, and what line is highlighted in yellow?

    – Jon Peltier
    Jan 30 at 2:21

















What does happen when you run the code normally?

– Twisty Impersonator
Jan 21 at 22:28





What does happen when you run the code normally?

– Twisty Impersonator
Jan 21 at 22:28













Do you get errors? What errors (the messages, not the numbers)? Where does the code stop, and what line is highlighted in yellow?

– Jon Peltier
Jan 30 at 2:21





Do you get errors? What errors (the messages, not the numbers)? Where does the code stop, and what line is highlighted in yellow?

– Jon Peltier
Jan 30 at 2:21










1 Answer
1






active

oldest

votes


















0














You need to select the chart, so the .Paste goes somewhere:



Sub EP()
Sheet9.Shapes("Picture 2").Copy
Dim xcht As Chart
Set xcht = Sheet9.Shapes.AddChart.Chart
With xcht
.ChartArea.Select
.ChartArea.ClearContents
.ChartArea.Width = Sheet9.Shapes("Picture 2").Width
.ChartArea.Height = Sheet9.Shapes("Picture 2").Height
.Paste
End With
End Sub





share|improve this answer























    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "3"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1395907%2fvba-code-works-with-f8-but-not-when-run%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    You need to select the chart, so the .Paste goes somewhere:



    Sub EP()
    Sheet9.Shapes("Picture 2").Copy
    Dim xcht As Chart
    Set xcht = Sheet9.Shapes.AddChart.Chart
    With xcht
    .ChartArea.Select
    .ChartArea.ClearContents
    .ChartArea.Width = Sheet9.Shapes("Picture 2").Width
    .ChartArea.Height = Sheet9.Shapes("Picture 2").Height
    .Paste
    End With
    End Sub





    share|improve this answer




























      0














      You need to select the chart, so the .Paste goes somewhere:



      Sub EP()
      Sheet9.Shapes("Picture 2").Copy
      Dim xcht As Chart
      Set xcht = Sheet9.Shapes.AddChart.Chart
      With xcht
      .ChartArea.Select
      .ChartArea.ClearContents
      .ChartArea.Width = Sheet9.Shapes("Picture 2").Width
      .ChartArea.Height = Sheet9.Shapes("Picture 2").Height
      .Paste
      End With
      End Sub





      share|improve this answer


























        0












        0








        0







        You need to select the chart, so the .Paste goes somewhere:



        Sub EP()
        Sheet9.Shapes("Picture 2").Copy
        Dim xcht As Chart
        Set xcht = Sheet9.Shapes.AddChart.Chart
        With xcht
        .ChartArea.Select
        .ChartArea.ClearContents
        .ChartArea.Width = Sheet9.Shapes("Picture 2").Width
        .ChartArea.Height = Sheet9.Shapes("Picture 2").Height
        .Paste
        End With
        End Sub





        share|improve this answer













        You need to select the chart, so the .Paste goes somewhere:



        Sub EP()
        Sheet9.Shapes("Picture 2").Copy
        Dim xcht As Chart
        Set xcht = Sheet9.Shapes.AddChart.Chart
        With xcht
        .ChartArea.Select
        .ChartArea.ClearContents
        .ChartArea.Width = Sheet9.Shapes("Picture 2").Width
        .ChartArea.Height = Sheet9.Shapes("Picture 2").Height
        .Paste
        End With
        End Sub






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 30 at 2:27









        Jon PeltierJon Peltier

        2,9121420




        2,9121420






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Super User!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1395907%2fvba-code-works-with-f8-but-not-when-run%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Plaza Victoria

            In PowerPoint, is there a keyboard shortcut for bulleted / numbered list?

            How to put 3 figures in Latex with 2 figures side by side and 1 below these side by side images but in...