Avatar billede bucephalus Praktikant
28. juni 2007 - 11:52 Der er 12 kommentarer og
1 løsning

Indsæt billede i Excel

Jeg har et excel-ark hvor man ved hjælp at en rullemenu kan vælge by.

Til dette ark vil jeg gerne vha. af cellekæden fra rullemenuen have excel til at indsætte et billede(map).(ideen er at billeder her det samme navn som cellekæde-nummeret som byen)

Jeg er klar over at det skal gøres vha.i VBA med addpicture, men jeg vil gerne have hjælp til hvordan det praktisk skal gøres.

Er det iøvrigt muligt at definrere en range (fx c4:e17) hvor billedet skal sættes ind?

På forhånd tak for hjælpen
Avatar billede excelent Ekspert
28. juni 2007 - 19:26 #1
Indsæt denne i arkets kodevindue - læs kommentarer i koden

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub ' rullemenu i celle A1
sti = "C:\Users\pm\Desktop\Tapet\" ' ret sti til aktuel
Range("B2").Select ' øverste venstre hjørne af billede placeres i celle B2
ActiveSheet.Pictures.Insert("" & sti & [a1] & ".jpg").Select ' billede type JPG - ret evt til aktuel
Range("A1").Select
End Sub
Avatar billede excelent Ekspert
28. juni 2007 - 20:43 #2
glemte lige at slette gl. billede
anvender celle D1 til at holde styr på l. billede navn
kan evt flyttes til anden celle eller farves hvis

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub ' rullemenu i celle A1
ActiveSheet.Shapes("" & [D1] & "").Delete 'Select
sti = "C:\Users\pm\Desktop\Tapet\" ' ret sti til aktuel
Range("B2").Select ' øverste venstre hjørne af billede placeres i celle B2
ActiveSheet.Pictures.Insert("" & sti & [a1] & ".jpg").Select ' billede type JPG - ret evt til aktuel
Range("D1").Value = Selection.Name
Range("D1").Select
End Sub
Avatar billede bucephalus Praktikant
02. juli 2007 - 13:27 #3
Jeg har indsat følgende kode:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Range("V1")) Is Nothing Then Exit Sub 'Cellekæde i celle V1
ActiveSheet.Shapes("" & (V1) & "").Delete 'Select
sti = "Y:\Billeder\" 'ret sti til aktuel"
Range("C3").Select ' øverste venstre hjørne af billede placeres i celle c3
ActiveSheet.Pictures.Insert("" & sti & Range("V1") & ".png").Select ' billede type JPG - ret evt til aktuel
Range("V1").Value = Selection.Name
Range("V1").Select
End Sub

Men der sker ikke rigtigt noget - navnet på billedet er det samme som fremkommer af cellekæden fra rullemenuen.

Hvad er det der er galt?
Avatar billede excelent Ekspert
02. juli 2007 - 15:47 #4
ActiveSheet.Shapes("" & (V1) & "").Delete 'Select
skal ændres til
ActiveSheet.Shapes("" & [V1] & "").Delete 'Select
eller
ActiveSheet.Shapes("" & Range("V1") & "").Delete 'Select

ellers sig til
Avatar billede excelent Ekspert
02. juli 2007 - 16:22 #5
er det datavaliderings liste, eller kombobox ?
Avatar billede bucephalus Praktikant
02. juli 2007 - 17:05 #6
Det er en kombinationsboks - Jeg har indført din rettelse, men jeg kan nu stadig ikke få det til at virke.
Avatar billede excelent Ekspert
02. juli 2007 - 17:11 #7
prøver lige at rette den til så den passer til kombobox
Avatar billede excelent Ekspert
02. juli 2007 - 18:19 #8
Hvor mange byer skal i listen ?
Er der Kontrol eller Formular kombo ?
Har bybillederne navne som 1,2,3 osv. ?
Avatar billede excelent Ekspert
02. juli 2007 - 21:24 #9
Koden er baseret på de oplysninger jeg har til nu.
Alle billeder i arket slettes før valgt billede indsættes
Tildel kombinationsboksen til denne makro


Sub kombo()
On Error Resume Next
ActiveSheet.Pictures.Delete
sti = "Y:\Billeder\"
pic = Cells(Cells(1, "V"), "U").Value ' Ret kolonne U til den kolonne hvor du har listen med byer
ActiveSheet.Pictures.Insert("" & sti & pic & ".png").Select
Range("V1").Value = pic
Range("V1").Select
End Sub
Avatar billede bucephalus Praktikant
03. juli 2007 - 09:42 #10
Hej igen,

Bybillederne har ganske rigtigt navne som 1, 2, 3 - så jeg ved ikke helt hvad jeg skal bruge henvisningen til kollone u til?
Jeg har derfor indsat følgende:

Sub kombo()
On Error Resume Next
ActiveSheet.Pictures.Delete
sti = "Y:\Billeder\"
pic = Cells(1, "V").Value ' Ret kolonne U til den kolonne hvor du har listen med byer
ActiveSheet.Pictures.Insert("" & sti & pic & ".png").Select
Range("V2").Value = pic
Range("C3").Select
End Sub

Nu virker det fint, og billedet bliver indsat i celle C3.

Jeg er dog ikke helt med på hvad værdien i V2, skal bruges til?

Men tusind tak for hjælpen og send et svar
Avatar billede bucephalus Praktikant
03. juli 2007 - 09:50 #11
90% af gangene bliver billedet indsat med højre hjørne i celle c3, men nogle gange hopper det til andre felter - hvad kan det skyldes?
Avatar billede excelent Ekspert
03. juli 2007 - 15:05 #12
jamen så kan du formentlig nøjes med:

Sub kombo()
On Error Resume Next
ActiveSheet.Pictures.Delete
sti = "Y:\Billeder\"
Range("C3").Select
ActiveSheet.Pictures.Insert("" & sti & [V1] & ".png").Select
Range("C3").Select
End Sub

denne linie sikrer placering af billede :Range("C3").Select
Avatar billede bucephalus Praktikant
10. juli 2007 - 11:37 #13
Perfekt - nu virker det fuldstændig som jeg havde tiltænkt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester