28. juni 2007 - 11:52Der 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?
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
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
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.
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
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?
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
Perfekt - nu virker det fuldstændig som jeg havde tiltænkt
Synes godt om
Ny brugerNybegynder
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.