Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Junior Member
 
Posts: 12
Default VBA Script to insert image

Hi there,

I am struggling on getting a VBA script to work correctly for a spreadsheet and I am seeking guidance. I am using Excell 2007 Professional and what I am trying to do is create a profile pages for an event at work.

What i'm trying to do is have the profile page set up, and where the picture will go have a box the user can click, once they click the box it will load a window for them to browse their computers directory to find the image, choose the image and say "ok" and it will insert and resize the image to the specified cell size. Once the image is inserted the box would either be covered up or disapear.

Can this be achieved? All I have been able to figure out is the following which will not resize or set destination cell and only allows JPEG's.

Please help! I am new to trying to code VBA projects.

Private Sub CommandButton1_Click()
Dim JPeg()
Dim flname As Variant
flname = Application.GetOpenFilename
If flname < False Then
If Right(flname, 3) = "jpg" Then
ActiveSheet.Pictures.Insert (flname)
Else
MsgBox "That is not a jpeg file"
End If
End If
End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 587
Default VBA Script to insert image

hi,

Private Sub CommandButton1_Click()
Dim fd As FileDialog
Dim ffs As FileDialogFilters
Dim Rng As Range
Set Rng = ActiveSheet.Range("B8") ' adapt to your range
Rng.Select
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
Set ffs = .Filters
With ffs
.Clear
.Add "Pictures", "*.jpg"
End With
.AllowMultiSelect = False
If .Show = False Then Exit Sub
Fichier = fd.SelectedItems(1)
Set Pict = ActiveSheet.Pictures.Insert(Fichier)
Pict.ShapeRange.LockAspectRatio = msoFalse
Pict.Height = Rng.Height
Pict.Width = Rng.Width
End With
End Sub

isabelle

Le 2014-07-18 11:06, clvrbas a écrit :
Hi there,

I am struggling on getting a VBA script to work correctly for a
spreadsheet and I am seeking guidance. I am using Excell 2007
Professional and what I am trying to do is create a profile pages for an
event at work.

What i'm trying to do is have the profile page set up, and where the
picture will go have a box the user can click, once they click the box
it will load a window for them to browse their computers directory to
find the image, choose the image and say "ok" and it will insert and
resize the image to the specified cell size. Once the image is inserted
the box would either be covered up or disapear.

Can this be achieved? All I have been able to figure out is the
following which will not resize or set destination cell and only allows
JPEG's.

Please help! I am new to trying to code VBA projects.

Private Sub CommandButton1_Click()
Dim JPeg()
Dim flname As Variant
flname = Application.GetOpenFilename
If flname < False Then
If Right(flname, 3) = "jpg" Then
ActiveSheet.Pictures.Insert (flname)
Else
MsgBox "That is not a jpeg file"
End If
End If
End Sub




  #3   Report Post  
Junior Member
 
Posts: 12
Default

This works really great, one problem though; when I protect the sheet it re sizes to normal size and has an error, is there a way around that?

Quote:
Originally Posted by isabelle View Post
hi,

Private Sub CommandButton1_Click()
Dim fd As FileDialog
Dim ffs As FileDialogFilters
Dim Rng As Range
Set Rng = ActiveSheet.Range("B8") ' adapt to your range
Rng.Select
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
Set ffs = .Filters
With ffs
.Clear
.Add "Pictures", "*.jpg"
End With
.AllowMultiSelect = False
If .Show = False Then Exit Sub
Fichier = fd.SelectedItems(1)
Set Pict = ActiveSheet.Pictures.Insert(Fichier)
Pict.ShapeRange.LockAspectRatio = msoFalse
Pict.Height = Rng.Height
Pict.Width = Rng.Width
End With
End Sub

isabelle

Le 2014-07-18 11:06, clvrbas a écrit :
Hi there,

I am struggling on getting a VBA script to work correctly for a
spreadsheet and I am seeking guidance. I am using Excell 2007
Professional and what I am trying to do is create a profile pages for an
event at work.

What i'm trying to do is have the profile page set up, and where the
picture will go have a box the user can click, once they click the box
it will load a window for them to browse their computers directory to
find the image, choose the image and say "ok" and it will insert and
resize the image to the specified cell size. Once the image is inserted
the box would either be covered up or disapear.

Can this be achieved? All I have been able to figure out is the
following which will not resize or set destination cell and only allows
JPEG's.

Please help! I am new to trying to code VBA projects.

Private Sub CommandButton1_Click()
Dim JPeg()
Dim flname As Variant
flname = Application.GetOpenFilename
If flname < False Then
If Right(flname, 3) = "jpg" Then
ActiveSheet.Pictures.Insert (flname)
Else
MsgBox "That is not a jpeg file"
End If
End If
End Sub



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 587
Default VBA Script to insert image

hi,

when you protect the sheet, you have to allow the users to edit objects
(DrawingObjects:=False)

ActiveSheet.Protect "password", DrawingObjects:=False, Contents:=True,
Scenarios:=True

isabelle

Le 2014-07-21 11:58, clvrbas a écrit :

This works really great, one problem though; when I protect the sheet it
re sizes to normal size and has an error, is there a way around that?


  #5   Report Post  
Junior Member
 
Posts: 12
Default

Quote:
Originally Posted by isabelle View Post
hi,

when you protect the sheet, you have to allow the users to edit objects
(DrawingObjects:=False)

ActiveSheet.Protect "password", DrawingObjects:=False, Contents:=True,
Scenarios:=True

isabelle

Le 2014-07-21 11:58, clvrbas a écrit :

This works really great, one problem though; when I protect the sheet it
re sizes to normal size and has an error, is there a way around that?
Thank you, i should have specified more clearly. I was hoping I could only allow users to edit that particular object, and not the other objects I have on the sheet. I'll insert this and see what I can do! :) Thank you for your help.

-- Chris


  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 587
Default VBA Script to insert image

hi,

Private Sub CommandButton1_Click()
Dim fd As FileDialog
Dim ffs As FileDialogFilters
Dim Rng As Range

ActiveSheet.UnProtect "password"

Set Rng = ActiveSheet.Range("B8") ' adapt to your range
Rng.Select
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
Set ffs = .Filters
With ffs
.Clear
.Add "Pictures", "*.jpg"
End With
.AllowMultiSelect = False
If .Show = False Then Exit Sub
Fichier = fd.SelectedItems(1)
Set Pict = ActiveSheet.Pictures.Insert(Fichier)
Pict.ShapeRange.LockAspectRatio = msoFalse
Pict.Height = Rng.Height
Pict.Width = Rng.Width
End With

ActiveSheet.Protect "password", DrawingObjects:=True, Contents:=True,
Scenarios:=True

End Sub

isabelle

Le 2014-07-21 16:56, clvrbas a écrit :

isabelle;1618222 Wrote:
hi,

when you protect the sheet, you have to allow the users to edit objects

(DrawingObjects:=False)



isabelle

Le 2014-07-21 11:58, clvrbas a écrit :-

This works really great, one problem though; when I protect the sheet

it
re sizes to normal size and has an error, is there a way around that?
-


Thank you, i should have specified more clearly. I was hoping I could
only allow users to edit that particular object, and not the other
objects I have on the sheet. I'll insert this and see what I can do!
:) Thank you for your help.

-- Chris




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Script to insert Row Jeremy Excel Discussion (Misc queries) 2 April 19th 10 02:39 PM
Need VBA script to auto-insert value upon row insert Phil Excel Worksheet Functions 4 May 6th 08 02:41 PM
Insert image, get name of image Rick S. Excel Programming 3 April 15th 08 07:05 PM
Insert a key function in VBA script Bowes813 Excel Programming 3 May 26th 05 11:27 PM
insert excel vb script bt707[_6_] Excel Programming 1 October 18th 03 03:43 PM


All times are GMT +1. The time now is 06:30 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"