Gå til innhold

[Løst] Vise figurer basert på tekst i celle i Excel 2013


Firmus

Anbefalte innlegg

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
Videoannonse
Annonse

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

  • Liker 2
Lenke til kommentar

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...