Firmus Skrevet 11. februar 2014 Del Skrevet 11. februar 2014 Jeg har et Excelark hvor jeg ønsker å vise ulike figurer basert på tekst i en celle. Figurene skal fungere som knapper som kjører ulike makroer. Etter flere googlesøk er det ikke tvil om at andre også har lurt på dette, men jeg finner ikke kildekoden som passer for meg. Det nærmeste jeg har kommet er en som viser bilde basert på to ulike figurer, men jeg ønsker at samme kode skal fungere på 7-8 ulike figurer. Jeg har laget et testark for dette hvor jeg brukte koden jeg fant på nettet: Private Sub Worksheet_Change(ByVal Target As Range) If Range("A4").Value = "firkant" Then ActiveSheet.Shapes("stjerne").Visible = False Else ActiveSheet.Shapes("stjerne").Visible = True End If If Range("A4").Value = "stjerne" Then ActiveSheet.Shapes("firkant").Visible = False Else ActiveSheet.Shapes("firkant").Visible = True End If End Sub Denne fungerer, men som nevnt ønsker jeg å legge til flere figurer og det har jeg ikke fått til. For å være helt ærlig forstår jeg ikke hvordan denne kan fungere heller, all den tid figuren "stjerne" settes til true når value = "firkant". Noen som har forslag til hvordan jeg legger til flere figurer som vises enkeltvis basert på teksten i celle A4? Lenke til kommentar
Harald Staff Skrevet 11. februar 2014 Del Skrevet 11. februar 2014 Når det blir for mange uoversiktelige IF'er så er Select Case gjerne løsningen. Se om denne får deg i gang: Select Case Range("A4").Value Case "Firkant" Shapes("firkant").Visible = True Shapes("trekant").Visible = False Shapes("stjerne").Visible = False Shapes("nakendame").Visible = False Case "Trekant" Shapes("firkant").Visible = False Shapes("trekant").Visible = True Shapes("stjerne").Visible = False Shapes("nakendame").Visible = False Case "Stjerne" Shapes("firkant").Visible = False Shapes("trekant").Visible = False Shapes("stjerne").Visible = True Shapes("nakendame").Visible = False 'osv osv 'osv osv Case Else Shapes("firkant").Visible = False Shapes("trekant").Visible = False Shapes("stjerne").Visible = False Shapes("nakendame").Visible = False End Select Bare å øke på mednøkkelord og shapes. Beste hislen Harald 2 Lenke til kommentar
Firmus Skrevet 11. februar 2014 Forfatter Del Skrevet 11. februar 2014 Når det blir for mange uoversiktelige IF'er så er Select Case gjerne løsningen. Se om denne får deg i gang: Select Case Range("A4").Value Case "Firkant" Shapes("firkant").Visible = True Shapes("trekant").Visible = False Shapes("stjerne").Visible = False Shapes("nakendame").Visible = False Case "Trekant" Shapes("firkant").Visible = False Shapes("trekant").Visible = True Shapes("stjerne").Visible = False Shapes("nakendame").Visible = False Case "Stjerne" Shapes("firkant").Visible = False Shapes("trekant").Visible = False Shapes("stjerne").Visible = True Shapes("nakendame").Visible = False 'osv osv 'osv osv Case Else Shapes("firkant").Visible = False Shapes("trekant").Visible = False Shapes("stjerne").Visible = False Shapes("nakendame").Visible = False End Select Bare å øke på mednøkkelord og shapes. Beste hislen Harald Takk for svar! Det er mulig jeg er fryktelig treg, men dette fikk ikke jeg til å fungere. Jeg fjernet selvsagt "osv osv", men det skjer ingenting da jeg limte inn dette. Jeg ønsker at figuren dukker opp automatisk når jeg velger det aktuelle ordet fra listen jeg laget i A4. Lenke til kommentar
Firmus Skrevet 11. februar 2014 Forfatter Del Skrevet 11. februar 2014 Jeg greide det! Tok utgangspunkt i min og endret den litt. Hadde jeg fått til din hadde den nok blitt litt kortere, men det viktigste er at den fungerer. Private Sub Worksheet_Change(ByVal Target As Range) If Range("A4").Value = "firkant" Then ActiveSheet.Shapes("stjerne").Visible = False ActiveSheet.Shapes("trekant").Visible = False ActiveSheet.Shapes("firkant").Visible = True End If If Range("A4").Value = "stjerne" Then ActiveSheet.Shapes("stjerne").Visible = True ActiveSheet.Shapes("trekant").Visible = False ActiveSheet.Shapes("firkant").Visible = False End If If Range("A4").Value = "trekant" Then ActiveSheet.Shapes("stjerne").Visible = False ActiveSheet.Shapes("trekant").Visible = True ActiveSheet.Shapes("firkant").Visible = False End If End Sub Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå