insert picture

S

sunilpatel

Hi how do you insert picture if you only know the filename not the extention
Pic$ is a six digit code, but the file if it exists can be .bmp, .gif, .jpeg
, .jpg
I want to insert if exists regardless of picture type.

Please help

Thanks

sunil

I have...

If Dir(Path$ & Pic$) <> "" Then
ActiveSheet.Pictures.Insert(Path$ & Pic$).Select
Endif
 
R

Rick Rothstein

I'm not sure I understand your question; however, if Pic$ is a 6-digit
number only, you can do this to find a single file (there could be more than
one) that has that filename...

FileNameAndExtension = Dir(Path$ & Pic$ & ".*")
If Len(FileName) > 0 Then
ActiveSheet.Pictures.Insert(FileName).Select

The dot in the dot-asterisk (.*) that I added signifies an extension and the
asterisk says that extension can be anything. I'm assuming you don't have,
say, txt file in that directory with the same filename part, otherwise you
will have to filter them out using a loop of some kind.
 
P

Patrick Molloy

dim exts as string
dim bFound as boolean
for i = 1 to 3
select case i
case 1: exts =".bmp"
case 2: exts ="..gif"
case 3: exts =".jpeg"
end select

If Dir(Path$ & Pic$ & exys ) <> "" Then
bfound = True
exit for
Endif
next
if not bFound then
msgbox "No file found"
else
ActiveSheet.Pictures.Insert(Path$ & Pic$ & exts ).Select
end if
 
D

Dave Peterson

If I knew the possible extensions, I'd just try them until I found it:

dim myExtensions as variant
dim eCtr as long
dim Pic as string
dim PicName as string
dim FoundIt as boolean
dim myPath as string

myextensions = array("bmp","gif","jpg", "jpeg")

pic = "123456"
mypath = "C:\something\"

foundit = false
for ectr = lbound(myextensions) to ubound(myextensions)
picname = mypath & pic & "." & myextensions(ectr)
if dir(picname) = "" then
'keep looking
else
exit for
foundit = true
end if
next ectr

if foundit = false then
msgbox "Not found"
else
'insert picname
end if
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top