Avatar billede zkov82 Nybegynder
19. september 2005 - 13:25 Der er 8 kommentarer og
1 løsning

formatering as celle efter løkke

Jeg har denne løkke som finder den største værdi i en kolonne:

Sub Find_Matches()

          Dim CompareRange As Variant, y As Variant

          Set CompareRange = Range("f5:f9")
         

          oldy = Range("f5")
              For Each y In CompareRange
                 
                  If y >= oldy Then
                  MsgBox (y.Range)
                End If
                  oldy = y
              Next y
         

      End Sub

Nu vil jeg gerne kunne gøre noget ved den celle som indeholder den største værdi.

fx. gøre teksten størrere samt evt. indsætte et specifikt billede.
Avatar billede kabbak Professor
19. september 2005 - 13:40 #1
Sub Find_Matches()

          Dim CompareRange As Variant, y As Variant, A As Long
        Set CompareRange = Range("f5:f9")
        A = Application.WorksheetFunction.Max(CompareRange)
     
              For Each y In CompareRange
                  If y = A Then
                  Range(y.Address).Font.Size = 20
                  ' mere kode
                  Exit Sub
                End If
              Next y

      End Sub
Avatar billede jkrons Professor
19. september 2005 - 14:06 #2
At gøre teksten større, farve den, baggrundsfarve i ecllen mm. kan gøres via betinget formatering - altså helt uden kode.

Marker dit område og vælg Betinget formatering. Sæt første rude til Formlen er, og indsæt denen formel: =F5=MAKS($F$5:$F$9))

Vælg derefter den øsnkede formatering.
Avatar billede zkov82 Nybegynder
19. september 2005 - 17:27 #3
Begge forslag er helt sikket brugbare........men hvis jeg også ønsker at få den til at vise et billede alt efter hvilken celle der er størts? Det er en række personer og cellerne dækker over hvor meget de har lavet. Den der så er bedst skal selvfølgelig ha sit navn op på skærmen.
Avatar billede kabbak Professor
19. september 2005 - 18:16 #4
1. Højreklik på øverste menulinie
    sæt flueben i kontrolelementer
2.

find iconknappen til billeder, det er den nederste,
tryk den ind og tegn en firkant på arket hvor billedet skal være

3.

lav et bibliotek med billeder af de ansatte, i f.eks .Jpg format

Det du kalder billederne skal stå ved siden af tallene i E kolonnen, uden endelsen .Jpg

4.

her nede i koden retter du C:\Ansatte\ til din sti

sæt så koden ind i Arkmodulet, så skulle den køre når du klikker på billedet

5.

med tekststørrelsen gør du som jkrons foreslår, det er det nemmeste.


Private Sub Image1_Click()
  Dim CompareRange As Variant, y As Variant, A As Long, Billede As String
        Set CompareRange = Range("f5:f9")
        A = Application.WorksheetFunction.Max(CompareRange)
     
              For Each y In CompareRange
                  If y = A Then
                  Billede = "C:\Ansatte\" & Range(y.Address).Offset(0, -1) & ".Jpg"
             
                Image1.Picture = LoadPicture(Billede)
             
                  Exit Sub
                End If
              Next y
End Sub
Avatar billede zkov82 Nybegynder
21. september 2005 - 17:45 #5
kabbak> det ser godt ud, men....
jeg ønsker at loade et specielt billede afhængig af hvem der fører.
Hvis de værdier jeg sammenligner ligger i f5:f9, så ligger de tilsvarende navne i b5:b9. navnene i cellerne er de samme som filnavnene.
Hvordan gøres dette?
Avatar billede zkov82 Nybegynder
21. september 2005 - 18:34 #6
hov....den skal selvfølgelig også kører med 10 min mellemrum....jeg har prøvet med Application.OnTime, men jeg kan ikke rigtigt få det til at virke...
Avatar billede kabbak Professor
21. september 2005 - 19:13 #7
i ThisWorkbook modulet

Public Sub Workbook_Open()
Nu = Now() + TimeSerial(0, 10, 0)
Application.OnTime Nu, "Opdater"
End Sub


i et rigtig modul

Public Sub Opdater()
  Dim CompareRange As Variant, y As Variant, A As Long, Billede As String
  With Sheets("Ark1")' ret arknavnet til dit ark
        Set CompareRange = .Range("f5:f9")
        A = Application.WorksheetFunction.Max(CompareRange)
     
              For Each y In CompareRange
                  If y = A Then
                  Billede = "C:\Ansatte\" & .Range(y.Address).Offset(0, -4) & ".Jpg"
             
                .Image1.Picture = LoadPicture(Billede)
             
                  Exit Sub
                End If
              Next y
      End With
        Nu = Now() + TimeSerial(0, 10, 0)
        Application.OnTime Nu, "Opdater"
     
End Sub
Avatar billede zkov82 Nybegynder
21. september 2005 - 20:12 #8
klasse...det virker....drop et svar
Avatar billede kabbak Professor
21. september 2005 - 20:56 #9
et svar ;-))
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel