Avatar billede x-lars Novice
21. august 2008 - 10:56 Der er 9 kommentarer og
1 løsning

Opslag i referencetabel - fremhævning af celle

Hej X-perter!

Hvis jeg har en stor tabel (4500 rækker) og skal holde den op mod en lille tabel (100 rækker), hvordan gør man det så nemmest - og hurtigst - i VBA?

Hvis værdien i store tabels kolonne A findes i lille tabels kolonne A, skal store tabels kolonne E i samme række have sort baggrund og hvid skrift.

Det må være noget med en for-next løkke og et lopslag, men jeg kan ikke helt gennemskue, hvordan det skal skrues sammen, så det ikke kommer til at tage forever!
Avatar billede supertekst Ekspert
21. august 2008 - 11:32 #1
Forslag:
- Gennemgå den lille tabel rækkervis
- Søg i den store tabel med værdien fra kol A
- Hvis fundet - marker den store tabel i kol E
Avatar billede excelent Ekspert
21. august 2008 - 11:39 #2
Navngiv lille tabel fx xlist
Marker E2:E500  i stor tabel's ark
Indsæt =TÆL.HVIS(xlist;A2) i betinget formatering
Vælg format
ok
Avatar billede supertekst Ekspert
21. august 2008 - 11:53 #3
Const storTabStart = 1          'tilpasses
Const storTabSlut = 10          '-"-

Const lilleTabStart = 12        '-"-
Const lilleTabSlut = 15          '-"-
Sub test()
Dim storeTabRæk
    For ræk = lilleTabStart To lilleTabSlut
        storeTabRæk = søgIstoreTab(Cells(ræk, 1))
        If storeTabRæk > 0 Then
            Cells(storeTabRæk, 5).Select
           
            With Selection.Interior
                .ColorIndex = 1
            End With
            Selection.Font.ColorIndex = 2
        End If
    Next ræk
End Sub
Private Function søgIstoreTab(vA)
    With Range("A" & CStr(storTabStart) & ":A" + CStr(storTabSlut))
        Set c = .Find(vA, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            række = c.Row
        Else
            række = 0
        End If
    End With
   
    søgIstoreTab = række
End Function
Avatar billede excelent Ekspert
21. august 2008 - 11:55 #4
ups det var : Marker E2:E4500  i stor tabel's ark
Avatar billede x-lars Novice
21. august 2008 - 13:20 #5
Excelent: Elegant forslag, men jeg fik ikke med, at lille_liste ligger i en anden projektmappe - og så kan man ikke lave betinget formatering med fjernreferencer?!?

Supertekst: Din ser meget lovende ud, men hvordan får jeg den til at "se", at de to tabeller findes i hver sin projektmappe?
Avatar billede supertekst Ekspert
21. august 2008 - 14:49 #6
Jeg tænkte det nok :-) - men det kan nok også klares...
Avatar billede supertekst Ekspert
21. august 2008 - 15:17 #7
Version 2:

Rem Koden anbringes i "Lille TABEL"
Rem *******************************

Dim storXLS
Rem ================= Tilpasses
Const storArk = "Ark1"
Const storSti = "C:\Documents and Settings\pb\Skrivebord\x_2108\storTabel.xls"
Const storTabStart = 1
Const storTabSlut = 10
Rem ==================

Rem ==================
Const lilleTabStart = 1
Const lilleTabSlut = 4
Rem ==================
Sub udførMarkeringAfStorTabel()
Dim storeTabRæk
    Set storXLS = CreateObject("Excel.application")
    With storXLS
        .Workbooks.Open storSti
    End With
   
    For ræk = lilleTabStart To lilleTabSlut
        storeTabRæk = søgIstoreTab(Cells(ræk, 1))
        If storeTabRæk > 0 Then
            storXLS.Sheets(storArk).Cells(storeTabRæk, 5).Select
           
            With storXLS.Selection
                .Interior.ColorIndex = 1
                .Font.ColorIndex = 2
            End With
        End If
    Next ræk
   
Rem luk "den store"
    storXLS.Application.DisplayAlerts = False
    storXLS.Save
    storXLS.Application.Quit
    Set storXLS = Nothing
   
    MsgBox ("Markering afsluttet")
End Sub
Private Function søgIstoreTab(vA)
    With storXLS.Range("A" & CStr(storTabStart) & ":A" + CStr(storTabSlut))
        Set c = .Find(vA, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            række = c.Row
        Else
            række = 0
        End If
    End With
   
    søgIstoreTab = række
End Function
Avatar billede x-lars Novice
21. august 2008 - 15:53 #8
Supertekst: Det virker bare helt perfekt - og rimeligt hurtigt endda! Smid et svar, pointene er dine!
Avatar billede supertekst Ekspert
21. august 2008 - 16:01 #9
Fint & tak
Avatar billede x-lars Novice
21. august 2008 - 16:20 #10
Velbekomme! ;-D
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