Avatar billede TheresaD Juniormester
13. april 2015 - 16:46 Der er 6 kommentarer og
1 løsning

automatisk skiftning af billeder

Jeg har et spørgsmål, er det muligt at automatisk at skifte forside billede, alt efter hvilket tal man taster i en celle?

Billederne er gemt på D:\billeder

med navnene:

101.jpg
102.jpg
103.jpg
104.jpg
105.jpg
106.jpg
107.jpg
108.jpg

Der er en forside og et dataark i regnearket.

Så hvis man fx skriver 101 i celle A1 på dataarket så vises billede 101.jpg på forsiden.
Avatar billede natkatten Mester
13. april 2015 - 20:01 #1
Dette kan laves vha. VBA. Her er et eksempel på lidt kode, som bør tilrettes dit konkrete behov. Koden indsættes i et modul. Forsidearket hedder her 'Forside' og dataarket hedder 'Data'. Der er ikke i dette
eksempel automatik. Dvs. makroen skal kaldes for hver gang.
Det vil  dog være let at tilrette den, således at den kaldes automatisk, hvis værdien i Worksheets("Data").Range("A2") ændres.

'****************************

Sub IndsætBillede()

Dim billednavn As String

Application.ScreenUpdating = False
Worksheets("Forside").Activate
Range("A6").Select 'Her vil billedet blive sat ind
On Error GoTo Fejl

'Her vælges navnet på billedet. Benyt f.eks. datavalidering
'således at kun navnene 101,102,103,104 mv. kan vælges
billednavn = Worksheets("Data").Range("A2")
'Oplysninger om stien til og navnet på billedet
ActiveSheet.Pictures.Insert("D:\billeder\" & billednavn & ".jpg").Select

'I denne konstruktion vælges billedstørrelse mv.
'Skal givetvis tilrettes.
With Selection
.Left = Range("A6").Left
.Top = Range("A6").Top
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = 200#
.ShapeRange.Width = 160#
.ShapeRange.Rotation = 0#
End With

Range("A1").Select
Application.ScreenUpdating = True

Exit Sub

Fejl:
'Giver besked hvis billedet ikke kan findes
MsgBox "Kan ikke finde billedet"
Exit Sub

End Sub
Avatar billede TheresaD Juniormester
14. april 2015 - 09:12 #2
Hej Natkatten

Din kode virker perfekt, men hvordan få man den til at automatisk at køre makroen, når dataen i celle A2 bliver ændret?
Avatar billede TheresaD Juniormester
14. april 2015 - 09:36 #3
En ting til jeg lige har opdaget, hver gang jeg skifter nr. og køre makroen så lægger den bare et nyt billeder ovenpå det gamle. Jeg vi gerne have den sletter det gamle så der altid kun er et billede. Hvordan gør man det?
Avatar billede natkatten Mester
14. april 2015 - 15:08 #4
Ad #2

Du kan benytte denne kode (skal være på det ark, hvor du vælger, hvilket billede, der skal vises). Valget sker i celle A2 (det er denne, der overvåges)
*****************************
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Validering As Range
Set Validering = Range("$A$2")
If Not Intersect(Target, Validering) Is Nothing Then
Call IndsætBillede
End If
End Sub
Avatar billede natkatten Mester
14. april 2015 - 15:15 #5
Ad #3
Hmm, dette oplever jeg umiddelbart ikke. Men prøv at sætte denne linje ind før linjen med ActiveSheet.Pictures.Insert

ActiveSheet.Pictures.Delete
Avatar billede TheresaD Juniormester
15. april 2015 - 10:06 #6
Tak det virker perfekt :) !!!

Send et svar og du får point :)
Avatar billede natkatten Mester
15. april 2015 - 11:04 #7
Fint. Hermed et svar til lukning af spørgsmålet.
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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