Error Handling while copying from Excel to PowerPoint
I have a problem with my code when I'm trying to copy some data from excel to PowerPoint using Excel VBA.
The problem is that it sometimes work properly and with no error but sometimes its crashes and stops during the run.
Sub Test()
Set PowerPointApp = CreateObject("PowerPoint.Application")
Set ppApp = New powerpoint.Application
ppApp.Visible = True
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
Set ppPres = PowerPointApp.Presentations.Open(DestinationPPT)
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Select
Selection.Copy
ppApp.Activate
ppPres.Slides(3).Select
ppApp.Windows(1).View.Paste
Set shp = ppPres.Slides(3).Shapes(ppPres.Slides(3).Shapes.Count)
shp.Left = 17
shp.Top = 90
ppApp.Windows(1).Selection.Unselect
ppPres.SaveAs "C:UsersSaeedDesktopedit vba" & FileName, ppSaveAsPDF
ppPres.Close
ppApp.Quit
Set ppt = Nothing
I skipped the dim parts and some unimportant ones.
But here is the problem : it always crashes in
ppApp.Windows(1).View.Paste
and I don't know how to fix it since it sometimes runs perfect and sometimes gives me error on that part !
I tried to use On error Goto but nothing changed.
It would be appreciated to help me out in this wierd problem.
excel powerpoint-vba
add a comment |
I have a problem with my code when I'm trying to copy some data from excel to PowerPoint using Excel VBA.
The problem is that it sometimes work properly and with no error but sometimes its crashes and stops during the run.
Sub Test()
Set PowerPointApp = CreateObject("PowerPoint.Application")
Set ppApp = New powerpoint.Application
ppApp.Visible = True
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
Set ppPres = PowerPointApp.Presentations.Open(DestinationPPT)
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Select
Selection.Copy
ppApp.Activate
ppPres.Slides(3).Select
ppApp.Windows(1).View.Paste
Set shp = ppPres.Slides(3).Shapes(ppPres.Slides(3).Shapes.Count)
shp.Left = 17
shp.Top = 90
ppApp.Windows(1).Selection.Unselect
ppPres.SaveAs "C:UsersSaeedDesktopedit vba" & FileName, ppSaveAsPDF
ppPres.Close
ppApp.Quit
Set ppt = Nothing
I skipped the dim parts and some unimportant ones.
But here is the problem : it always crashes in
ppApp.Windows(1).View.Paste
and I don't know how to fix it since it sometimes runs perfect and sometimes gives me error on that part !
I tried to use On error Goto but nothing changed.
It would be appreciated to help me out in this wierd problem.
excel powerpoint-vba
add a comment |
I have a problem with my code when I'm trying to copy some data from excel to PowerPoint using Excel VBA.
The problem is that it sometimes work properly and with no error but sometimes its crashes and stops during the run.
Sub Test()
Set PowerPointApp = CreateObject("PowerPoint.Application")
Set ppApp = New powerpoint.Application
ppApp.Visible = True
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
Set ppPres = PowerPointApp.Presentations.Open(DestinationPPT)
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Select
Selection.Copy
ppApp.Activate
ppPres.Slides(3).Select
ppApp.Windows(1).View.Paste
Set shp = ppPres.Slides(3).Shapes(ppPres.Slides(3).Shapes.Count)
shp.Left = 17
shp.Top = 90
ppApp.Windows(1).Selection.Unselect
ppPres.SaveAs "C:UsersSaeedDesktopedit vba" & FileName, ppSaveAsPDF
ppPres.Close
ppApp.Quit
Set ppt = Nothing
I skipped the dim parts and some unimportant ones.
But here is the problem : it always crashes in
ppApp.Windows(1).View.Paste
and I don't know how to fix it since it sometimes runs perfect and sometimes gives me error on that part !
I tried to use On error Goto but nothing changed.
It would be appreciated to help me out in this wierd problem.
excel powerpoint-vba
I have a problem with my code when I'm trying to copy some data from excel to PowerPoint using Excel VBA.
The problem is that it sometimes work properly and with no error but sometimes its crashes and stops during the run.
Sub Test()
Set PowerPointApp = CreateObject("PowerPoint.Application")
Set ppApp = New powerpoint.Application
ppApp.Visible = True
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
Set ppPres = PowerPointApp.Presentations.Open(DestinationPPT)
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Select
Selection.Copy
ppApp.Activate
ppPres.Slides(3).Select
ppApp.Windows(1).View.Paste
Set shp = ppPres.Slides(3).Shapes(ppPres.Slides(3).Shapes.Count)
shp.Left = 17
shp.Top = 90
ppApp.Windows(1).Selection.Unselect
ppPres.SaveAs "C:UsersSaeedDesktopedit vba" & FileName, ppSaveAsPDF
ppPres.Close
ppApp.Quit
Set ppt = Nothing
I skipped the dim parts and some unimportant ones.
But here is the problem : it always crashes in
ppApp.Windows(1).View.Paste
and I don't know how to fix it since it sometimes runs perfect and sometimes gives me error on that part !
I tried to use On error Goto but nothing changed.
It would be appreciated to help me out in this wierd problem.
excel powerpoint-vba
excel powerpoint-vba
asked Nov 22 '18 at 13:57
Saeed MirshahvaladiSaeed Mirshahvaladi
61
61
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
My first guess is that you should not paste it into the view but into the slide instead.
ppPres.Slides(3).shapes.paste
Cheers
Jens
Tnx Jens but I have tried that method , its the same . The error happens in this method , I came up with an idea that is to use "On error goto" method for every line. so that when ever error occurs it repeat the line until it copy and paste data but I failed since I may not used that correctly
– Saeed Mirshahvaladi
Nov 23 '18 at 12:52
add a comment |
One thing I wanted to point out is in your code you were jumping between late and early binding. I don't know if this was intentional or not, but ideally, you would only want to choose one. In my solution, I am assuming you want early binding.
Now the other thing I would recommend you do is to make sure you declare all of our variables so that way you can write your code a little more concisely and it's easier to know which object we are working with.
The reason you are having the problem could be a couple of different issues but one of them is possibly related to the clipboard. The reason I suspect this is that you're saying the error is sporadic, this usually is an indication of the clipboard error. Lucky for us there are a couple of solutions we can implement. My go-to solution is to pause the Excel application for one or two seconds to ensure the information makes it to the clipboard. This solution usually fixes 95% of the errors related to the clipboard.
With that said, it won't work 100% of the time. As strange as this may sound we can still have situations where the information disappears from the clipboard.
Also if you're new to Excel VBA & PowerPoint VBA working in tandem I have some YouTube videos that go over this topic. Feel free to check them out if you think you will want to do more complicated scripts.
https://www.youtube.com/playlist?list=PLcFcktZ0wnNlFcSydYb8bI1AclQ4I38VN
Try out this code and let me know what you get:
Sub Test()
'Declare Variables
Dim PPTApp As PowerPoint.Application
Dim PPTPres As PowerPoint.Presentation
Dim PPTShape As PowerPoint.Shape
'Create a new instance of PowerPoint
Set PPTApp = New PowerPoint.Application
PPTApp.Visible = True
'File Path
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
'Open the File
Set PPTPres = PPTApp.Presentations.Open(DestinationPPT)
'Copy Range "A2" on the sheet.
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Copy
'Pause the Excel Applicaiton for one second. This is for stability issues that may arise.
Application.Wait Now() + #12:00:01 AM#
'Paste the Range on the Slide
PPTPres.Slides(3).Shapes.Paste
Set PPTShape = PPTPres.Slides(3).Shapes(PPTPres.Slides(3).Shapes.Count)
PPTShape.Select
'Set Dimensions of Shape
With PPTShape
.Left = 17
.Top = 90
End With
'Save & Close the file
PPTPres.SaveAs "C:UsersSaeedDesktopedit vba" & Filename, ppSaveAsPDF
PPTPres.Close
PPTApp.Quit
'Release Objects From Memory
Set PPTApp = Nothing
Set PPTPres = Nothing
Set PPTShape = Nothing
End Sub
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432589%2ferror-handling-while-copying-from-excel-to-powerpoint%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
My first guess is that you should not paste it into the view but into the slide instead.
ppPres.Slides(3).shapes.paste
Cheers
Jens
Tnx Jens but I have tried that method , its the same . The error happens in this method , I came up with an idea that is to use "On error goto" method for every line. so that when ever error occurs it repeat the line until it copy and paste data but I failed since I may not used that correctly
– Saeed Mirshahvaladi
Nov 23 '18 at 12:52
add a comment |
My first guess is that you should not paste it into the view but into the slide instead.
ppPres.Slides(3).shapes.paste
Cheers
Jens
Tnx Jens but I have tried that method , its the same . The error happens in this method , I came up with an idea that is to use "On error goto" method for every line. so that when ever error occurs it repeat the line until it copy and paste data but I failed since I may not used that correctly
– Saeed Mirshahvaladi
Nov 23 '18 at 12:52
add a comment |
My first guess is that you should not paste it into the view but into the slide instead.
ppPres.Slides(3).shapes.paste
Cheers
Jens
My first guess is that you should not paste it into the view but into the slide instead.
ppPres.Slides(3).shapes.paste
Cheers
Jens
answered Nov 23 '18 at 9:34
Jens.Huehn_at_SlideFab.comJens.Huehn_at_SlideFab.com
15416
15416
Tnx Jens but I have tried that method , its the same . The error happens in this method , I came up with an idea that is to use "On error goto" method for every line. so that when ever error occurs it repeat the line until it copy and paste data but I failed since I may not used that correctly
– Saeed Mirshahvaladi
Nov 23 '18 at 12:52
add a comment |
Tnx Jens but I have tried that method , its the same . The error happens in this method , I came up with an idea that is to use "On error goto" method for every line. so that when ever error occurs it repeat the line until it copy and paste data but I failed since I may not used that correctly
– Saeed Mirshahvaladi
Nov 23 '18 at 12:52
Tnx Jens but I have tried that method , its the same . The error happens in this method , I came up with an idea that is to use "On error goto" method for every line. so that when ever error occurs it repeat the line until it copy and paste data but I failed since I may not used that correctly
– Saeed Mirshahvaladi
Nov 23 '18 at 12:52
Tnx Jens but I have tried that method , its the same . The error happens in this method , I came up with an idea that is to use "On error goto" method for every line. so that when ever error occurs it repeat the line until it copy and paste data but I failed since I may not used that correctly
– Saeed Mirshahvaladi
Nov 23 '18 at 12:52
add a comment |
One thing I wanted to point out is in your code you were jumping between late and early binding. I don't know if this was intentional or not, but ideally, you would only want to choose one. In my solution, I am assuming you want early binding.
Now the other thing I would recommend you do is to make sure you declare all of our variables so that way you can write your code a little more concisely and it's easier to know which object we are working with.
The reason you are having the problem could be a couple of different issues but one of them is possibly related to the clipboard. The reason I suspect this is that you're saying the error is sporadic, this usually is an indication of the clipboard error. Lucky for us there are a couple of solutions we can implement. My go-to solution is to pause the Excel application for one or two seconds to ensure the information makes it to the clipboard. This solution usually fixes 95% of the errors related to the clipboard.
With that said, it won't work 100% of the time. As strange as this may sound we can still have situations where the information disappears from the clipboard.
Also if you're new to Excel VBA & PowerPoint VBA working in tandem I have some YouTube videos that go over this topic. Feel free to check them out if you think you will want to do more complicated scripts.
https://www.youtube.com/playlist?list=PLcFcktZ0wnNlFcSydYb8bI1AclQ4I38VN
Try out this code and let me know what you get:
Sub Test()
'Declare Variables
Dim PPTApp As PowerPoint.Application
Dim PPTPres As PowerPoint.Presentation
Dim PPTShape As PowerPoint.Shape
'Create a new instance of PowerPoint
Set PPTApp = New PowerPoint.Application
PPTApp.Visible = True
'File Path
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
'Open the File
Set PPTPres = PPTApp.Presentations.Open(DestinationPPT)
'Copy Range "A2" on the sheet.
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Copy
'Pause the Excel Applicaiton for one second. This is for stability issues that may arise.
Application.Wait Now() + #12:00:01 AM#
'Paste the Range on the Slide
PPTPres.Slides(3).Shapes.Paste
Set PPTShape = PPTPres.Slides(3).Shapes(PPTPres.Slides(3).Shapes.Count)
PPTShape.Select
'Set Dimensions of Shape
With PPTShape
.Left = 17
.Top = 90
End With
'Save & Close the file
PPTPres.SaveAs "C:UsersSaeedDesktopedit vba" & Filename, ppSaveAsPDF
PPTPres.Close
PPTApp.Quit
'Release Objects From Memory
Set PPTApp = Nothing
Set PPTPres = Nothing
Set PPTShape = Nothing
End Sub
add a comment |
One thing I wanted to point out is in your code you were jumping between late and early binding. I don't know if this was intentional or not, but ideally, you would only want to choose one. In my solution, I am assuming you want early binding.
Now the other thing I would recommend you do is to make sure you declare all of our variables so that way you can write your code a little more concisely and it's easier to know which object we are working with.
The reason you are having the problem could be a couple of different issues but one of them is possibly related to the clipboard. The reason I suspect this is that you're saying the error is sporadic, this usually is an indication of the clipboard error. Lucky for us there are a couple of solutions we can implement. My go-to solution is to pause the Excel application for one or two seconds to ensure the information makes it to the clipboard. This solution usually fixes 95% of the errors related to the clipboard.
With that said, it won't work 100% of the time. As strange as this may sound we can still have situations where the information disappears from the clipboard.
Also if you're new to Excel VBA & PowerPoint VBA working in tandem I have some YouTube videos that go over this topic. Feel free to check them out if you think you will want to do more complicated scripts.
https://www.youtube.com/playlist?list=PLcFcktZ0wnNlFcSydYb8bI1AclQ4I38VN
Try out this code and let me know what you get:
Sub Test()
'Declare Variables
Dim PPTApp As PowerPoint.Application
Dim PPTPres As PowerPoint.Presentation
Dim PPTShape As PowerPoint.Shape
'Create a new instance of PowerPoint
Set PPTApp = New PowerPoint.Application
PPTApp.Visible = True
'File Path
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
'Open the File
Set PPTPres = PPTApp.Presentations.Open(DestinationPPT)
'Copy Range "A2" on the sheet.
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Copy
'Pause the Excel Applicaiton for one second. This is for stability issues that may arise.
Application.Wait Now() + #12:00:01 AM#
'Paste the Range on the Slide
PPTPres.Slides(3).Shapes.Paste
Set PPTShape = PPTPres.Slides(3).Shapes(PPTPres.Slides(3).Shapes.Count)
PPTShape.Select
'Set Dimensions of Shape
With PPTShape
.Left = 17
.Top = 90
End With
'Save & Close the file
PPTPres.SaveAs "C:UsersSaeedDesktopedit vba" & Filename, ppSaveAsPDF
PPTPres.Close
PPTApp.Quit
'Release Objects From Memory
Set PPTApp = Nothing
Set PPTPres = Nothing
Set PPTShape = Nothing
End Sub
add a comment |
One thing I wanted to point out is in your code you were jumping between late and early binding. I don't know if this was intentional or not, but ideally, you would only want to choose one. In my solution, I am assuming you want early binding.
Now the other thing I would recommend you do is to make sure you declare all of our variables so that way you can write your code a little more concisely and it's easier to know which object we are working with.
The reason you are having the problem could be a couple of different issues but one of them is possibly related to the clipboard. The reason I suspect this is that you're saying the error is sporadic, this usually is an indication of the clipboard error. Lucky for us there are a couple of solutions we can implement. My go-to solution is to pause the Excel application for one or two seconds to ensure the information makes it to the clipboard. This solution usually fixes 95% of the errors related to the clipboard.
With that said, it won't work 100% of the time. As strange as this may sound we can still have situations where the information disappears from the clipboard.
Also if you're new to Excel VBA & PowerPoint VBA working in tandem I have some YouTube videos that go over this topic. Feel free to check them out if you think you will want to do more complicated scripts.
https://www.youtube.com/playlist?list=PLcFcktZ0wnNlFcSydYb8bI1AclQ4I38VN
Try out this code and let me know what you get:
Sub Test()
'Declare Variables
Dim PPTApp As PowerPoint.Application
Dim PPTPres As PowerPoint.Presentation
Dim PPTShape As PowerPoint.Shape
'Create a new instance of PowerPoint
Set PPTApp = New PowerPoint.Application
PPTApp.Visible = True
'File Path
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
'Open the File
Set PPTPres = PPTApp.Presentations.Open(DestinationPPT)
'Copy Range "A2" on the sheet.
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Copy
'Pause the Excel Applicaiton for one second. This is for stability issues that may arise.
Application.Wait Now() + #12:00:01 AM#
'Paste the Range on the Slide
PPTPres.Slides(3).Shapes.Paste
Set PPTShape = PPTPres.Slides(3).Shapes(PPTPres.Slides(3).Shapes.Count)
PPTShape.Select
'Set Dimensions of Shape
With PPTShape
.Left = 17
.Top = 90
End With
'Save & Close the file
PPTPres.SaveAs "C:UsersSaeedDesktopedit vba" & Filename, ppSaveAsPDF
PPTPres.Close
PPTApp.Quit
'Release Objects From Memory
Set PPTApp = Nothing
Set PPTPres = Nothing
Set PPTShape = Nothing
End Sub
One thing I wanted to point out is in your code you were jumping between late and early binding. I don't know if this was intentional or not, but ideally, you would only want to choose one. In my solution, I am assuming you want early binding.
Now the other thing I would recommend you do is to make sure you declare all of our variables so that way you can write your code a little more concisely and it's easier to know which object we are working with.
The reason you are having the problem could be a couple of different issues but one of them is possibly related to the clipboard. The reason I suspect this is that you're saying the error is sporadic, this usually is an indication of the clipboard error. Lucky for us there are a couple of solutions we can implement. My go-to solution is to pause the Excel application for one or two seconds to ensure the information makes it to the clipboard. This solution usually fixes 95% of the errors related to the clipboard.
With that said, it won't work 100% of the time. As strange as this may sound we can still have situations where the information disappears from the clipboard.
Also if you're new to Excel VBA & PowerPoint VBA working in tandem I have some YouTube videos that go over this topic. Feel free to check them out if you think you will want to do more complicated scripts.
https://www.youtube.com/playlist?list=PLcFcktZ0wnNlFcSydYb8bI1AclQ4I38VN
Try out this code and let me know what you get:
Sub Test()
'Declare Variables
Dim PPTApp As PowerPoint.Application
Dim PPTPres As PowerPoint.Presentation
Dim PPTShape As PowerPoint.Shape
'Create a new instance of PowerPoint
Set PPTApp = New PowerPoint.Application
PPTApp.Visible = True
'File Path
DestinationPPT = "C:UsersSaeedDesktopedit vbatest.pptx"
'Open the File
Set PPTPres = PPTApp.Presentations.Open(DestinationPPT)
'Copy Range "A2" on the sheet.
Sheets("Slide3").Activate
Sheets("Slide3").Range("A2").Copy
'Pause the Excel Applicaiton for one second. This is for stability issues that may arise.
Application.Wait Now() + #12:00:01 AM#
'Paste the Range on the Slide
PPTPres.Slides(3).Shapes.Paste
Set PPTShape = PPTPres.Slides(3).Shapes(PPTPres.Slides(3).Shapes.Count)
PPTShape.Select
'Set Dimensions of Shape
With PPTShape
.Left = 17
.Top = 90
End With
'Save & Close the file
PPTPres.SaveAs "C:UsersSaeedDesktopedit vba" & Filename, ppSaveAsPDF
PPTPres.Close
PPTApp.Quit
'Release Objects From Memory
Set PPTApp = Nothing
Set PPTPres = Nothing
Set PPTShape = Nothing
End Sub
answered Jan 23 at 16:42
areed1192areed1192
14218
14218
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- 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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53432589%2ferror-handling-while-copying-from-excel-to-powerpoint%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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