• Hi All

    Please note that at the Chandoo.org Forums there is Zero Tolerance to Spam

    Post Spam and you Will Be Deleted as a User

    Hui...

  • When starting a new post, to receive a quicker and more targeted answer, Please include a sample file in the initial post.

Automatic Resizing of picture

DAGUET

Member
Hello

I am struggling to find a solution (VBA macro-based) to resize automatically the picture that is shown when I open the xl spreadsheet. The idea is that any user opening the file should have the picture sized so that it sees it wholly and does not have to adjust manually the screen ( through zooming in/out) to have the picture shown in its entirety.

I tried to code it but finally failed.

If anyone of you would have an idea, I would take it.

Thansk!!!
 

Attachments

  • Final excel.xlsm
    972.6 KB · Views: 7

Hi,

See properties like VisibleRange, UsableHeight and UsableWidth.

If you don't succed, post the code …
 
This may help.


Sub ImportPictureAtSize()

Dim oSlide As Slide
Dim oPicture As Shape

' Change slide index position to the first slide
ActiveWindow.View.GotoSlide 1

' Set oSlide to the first slide in the presentation.
Set oSlide = ActiveWindow.Presentation.Slides(1)

' Set oPicture to the picture file on your computer. Set Link To
' File to false, Save With Document to true, and place it in the
' upper left-hand corner of the slide, sized to 1 by 1 points.
'
' NOTE: Before you run this code replace this text string:
' "Put image path here!"
' with the path to the image you want to import. For example:
' "c:\MyImage.bmp"
Set oPicture = oSlide.Shapes.AddPicture("Put image path here!", _
msoFalse, msoTrue, 1, 1, 1, 1)
' Now scale the picture to full size, with "Relative to original
' picture size" set to true for both height and width.
oPicture.ScaleHeight 1, msoTrue
oPicture.ScaleWidth 1, msoTrue

' Move the picture to the center of the slide. Select it.
With ActivePresentation.PageSetup
oPicture.Left = (.SlideWidth \ 2) - (oPicture.Width \ 2)
oPicture.Top = (.SlideHeight \ 2) - (oPicture.Height \ 2)
oPicture.Select
End With

End Sub



.
 
Hi Patrick ,

My impression is that if the picture is resized to fit within the window confines of the Excel application , then it should be displayed properly on all monitors , provided the Excel application itself is running in maximized window mode.

Correct me if I am wrong.

Can you see the attached file and comment ?

I would like to make another comment that you have provided buttons to take the user to the individual worksheet tabs ; how does the user return to the dashboard ? Are you going to provide buttons on the individual tabs for this ?

Narayan
 

Attachments

  • Final excel.xlsm
    975.6 KB · Views: 6
This may help.


Sub ImportPictureAtSize()

Dim oSlide As Slide
Dim oPicture As Shape

' Change slide index position to the first slide
ActiveWindow.View.GotoSlide 1

' Set oSlide to the first slide in the presentation.
Set oSlide = ActiveWindow.Presentation.Slides(1)

' Set oPicture to the picture file on your computer. Set Link To
' File to false, Save With Document to true, and place it in the
' upper left-hand corner of the slide, sized to 1 by 1 points.
'
' NOTE: Before you run this code replace this text string:
' "Put image path here!"
' with the path to the image you want to import. For example:
' "c:\MyImage.bmp"
Set oPicture = oSlide.Shapes.AddPicture("Put image path here!", _
msoFalse, msoTrue, 1, 1, 1, 1)
' Now scale the picture to full size, with "Relative to original
' picture size" set to true for both height and width.
oPicture.ScaleHeight 1, msoTrue
oPicture.ScaleWidth 1, msoTrue

' Move the picture to the center of the slide. Select it.
With ActivePresentation.PageSetup
oPicture.Left = (.SlideWidth \ 2) - (oPicture.Width \ 2)
oPicture.Top = (.SlideHeight \ 2) - (oPicture.Height \ 2)
oPicture.Select
End With

End Sub



.
Thanks

i'll try this code and see if that works

thanks again!!!
 
Hi Patrick ,

My impression is that if the picture is resized to fit within the window confines of the Excel application , then it should be displayed properly on all monitors , provided the Excel application itself is running in maximized window mode.

Correct me if I am wrong.

Can you see the attached file and comment ?

I would like to make another comment that you have provided buttons to take the user to the individual worksheet tabs ; how does the user return to the dashboard ? Are you going to provide buttons on the individual tabs for this ?

Narayan
Narayan

I'll try this and come back to you
Indeed I will provide buttons for such thing

Best Regards!!!
 
Back
Top