Avatar billede jss Nybegynder
25. juni 2007 - 01:23 Der er 8 kommentarer og
1 løsning

Indsætte smileys (gif-format) i celler afhængig andre celler

Hejsa
Sidder med noget automatisering af masse-rapportering og er gået lidt i stå mht. at indsætte smileys (gif-format) i celler afhængig andre celler. Jeg har prøvet at kigge lidt på flg. 2 indlæg, men mangler lidt mere hjælp :-)

http://www.eksperten.dk/spm/553100
http://www.eksperten.dk/spm/74800


Kort fortalt er mit ark opbygget af et data-ark hvor data placeres samt et rapport-ark, hvor selve rapportering er opbygget. Og det er her at jeg bla. gerne vil vise smileys (gif-format) afhængig af den tilhørende værdi i data-arket. Ialt har jeg 16 celler hvor der skal indsættes en smiley afhængig af en værdi i data-arket.

Jeg arbejder med 4 forskellige smileys, så jeg kan ikke anvende de indbyggede smileys i Wingdings-format.

Ser frem til nogle gode forslag :-))
Avatar billede Slettet bruger
25. juni 2007 - 18:06 #2
håber det giver svar på dit spørgsmål!
Avatar billede jss Nybegynder
28. juni 2007 - 13:48 #3
så er point hævet til 200 :-)
Avatar billede excelent Ekspert
29. juni 2007 - 19:44 #4
måske noget i denne stil :

Sub Smil()
ActiveSheet.Pictures.Delete
sti = "C:\Users\pm\Desktop\Tapet\" ' ret til aktuel sti
For t = 2 To 17 ' Billede indsættes i kolonne B hvis kolonne A opfylder værdi kriterier B2:B17
Cells(t, 2).Select
If Cells(t, 1) >= 100 And Cells(t, 1) <= 110 Then ActiveSheet.Pictures.Insert("" & sti & "2.jpg").Select ' smiley 1
If Cells(t, 1) >= 111 And Cells(t, 1) <= 120 Then ActiveSheet.Pictures.Insert("" & sti & "3.jpg").Select ' smiley 2
If Cells(t, 1) >= 121 And Cells(t, 1) <= 130 Then ActiveSheet.Pictures.Insert("" & sti & "4.jpg").Select ' smiley 3
If Cells(t, 1) >= 131 And Cells(t, 1) <= 140 Then ActiveSheet.Pictures.Insert("" & sti & "5.jpg").Select ' smiley 4
Next
End Sub
Avatar billede jss Nybegynder
02. juli 2007 - 09:12 #5
excelent: det ligner noget af det rigtige - jeg får testet det i løbet af denne uge. Der er lige en lille ting som du måske kan hjælpe med. Jeghar i forvejen et par billeder (logoer) i excel-filen, som jeg gerne vil beholde - de bliver vel slettet af linjen "ActiveSheet.Pictures.Delete" ? Kan man gøre et eller andet for at undgå det - nogle if-betingelser eller lign. ?
Avatar billede excelent Ekspert
02. juli 2007 - 10:48 #6
ja de slettes også, kikker på det
Avatar billede excelent Ekspert
03. juli 2007 - 15:58 #7
ja det kan være noget problematisk med de billednavne
men prøv om du kan bruge denne løsning
Navne på billede skrives i kolonne B,- skal anvendes ved sletn.

Sub Smil()
On Error Resume Next

For t = 2 To 17
ActiveSheet.Shapes("" & Cells(t, 2) & "").Delete
Next

sti = "C:\Users\pm\Desktop\Tapet\" ' ret til aktuel sti
For t = 2 To 17 ' Billede indsættes i kolonne B hvis kolonne A opfylder værdi kriterier B2:B17
Cells(t, 2).Select
If Cells(t, 1) >= 100 And Cells(t, 1) <= 110 Then
ActiveSheet.Pictures.Insert("" & sti & "2.jpg").Select
Cells(t, 2) = Selection.Name
End If
If Cells(t, 1) >= 111 And Cells(t, 1) <= 120 Then
ActiveSheet.Pictures.Insert("" & sti & "3.jpg").Select
Cells(t, 2) = Selection.Name
End If
If Cells(t, 1) >= 121 And Cells(t, 1) <= 130 Then
ActiveSheet.Pictures.Insert("" & sti & "4.jpg").Select
Cells(t, 2) = Selection.Name
End If
If Cells(t, 1) >= 131 And Cells(t, 1) <= 140 Then
ActiveSheet.Pictures.Insert("" & sti & "5.jpg").Select
Cells(t, 2) = Selection.Name
End If
Next
End Sub
Avatar billede excelent Ekspert
17. juli 2007 - 08:27 #8
hvordan går det ?
Avatar billede jss Nybegynder
23. juli 2007 - 06:21 #9
Hej excelent
Det går fint - jeg holder ferie :-)
men jeg har dog alligevel kigget på dit forslag og har fået følgende til at virke, så du får hermed dine velfortjente point.
Det virker perfekt og er en funktion som jeg (og måske andre) vil kunne bruge i andre projekter.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next

Dim t, sti
For t = 5 To 10
  ActiveSheet.Shapes("" & Cells(123, t) & "").Delete
Next

' ret til aktuel sti
sti = "C:\Image\"
For t = 5 To 10 ' Billede indsættes i række 123 hvis række 121 opfylder værdi kriterier E121:J121
    Cells(123, t).Select
    If Cells(121, t) = 0 Then
        ActiveSheet.Pictures.Insert("" & sti & "Smiley0.gif").Select
        'Cells(123, t) = Selection.Name
    End If
    If Cells(121, t) = 1 Then
        ActiveSheet.Pictures.Insert("" & sti & "Smiley1.gif").Select
        'Cells(123, t) = Selection.Name
    End If
    If Cells(121, t) = 2 Then
        ActiveSheet.Pictures.Insert("" & sti & "Smiley2.gif").Select
        'Cells(123, t) = Selection.Name
    End If
    If Cells(121, t) = 3 Then
        ActiveSheet.Pictures.Insert("" & sti & "Smiley3.gif").Select
        'Cells(123, t) = Selection.Name
    End If
    Selection.ShapeRange.IncrementLeft 17
    Selection.ShapeRange.IncrementTop 1
Next

End Sub

Netop her til morgen faldt jeg pudsigt nok over en anden løsning, som er baseret på en speciel smiley-font, som passer nøjagtig til mit projekt.
http://www.foedevarestyrelsen.dk/Kontrol/Smiley/Generelt_om_smiley/Hent+smiley-font.htm

Ja, nogen gange er man nødt til at gå over åen efter vand .....
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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