Marker række og kolonne ved lighed i første

Overskriften her lyder muligvis lidt kryptisk, men helt så galt er det ikke i virkeligheden. Det belyses nok bedst, ved et eksempel:

 

A

B

C

D

E

1

Navn:

 

 

 

 

2

 

 Hans

Peter

Ib

Joakim

3

Svend

 

 

 

 

4

Georg

       

5

Joakim

 

 

 

 

6

Ib

 

 

 

 

7

Gorm

 

 

 

 

8

Ivar

 

 

 

 

9

Peter

 

 

 

 

Som det fremgår er der nogle navne, der går igen både lodret og vandret. I A1, kan indtastes et navn, og findes det både lodret og vandret, fremhæves de pågældende rækker/kolonner med rød baggrund. Findes det ikke, eller findes navnet kun lodret eller vandret, sker der ingenting. Makroen er en hændelsesmakro, og skal ligge på kodearket til det ark, hvor matricen findes.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo fejl

    Dim Navn As String
    Dim NavnKNr As Byte, NavnRNr As Byte
   
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Navn = Range("a1")
   
        Cells.Interior.ColorIndex = xlNone
       
        For Each c In Range("b2:e2").Cells
            If UCase(c.Value) = UCase(Navn) Then NavnKNr = c.Column
        Next
        For Each c In Range("a3:a9").Cells
            If UCase(c.Value) = UCase(Navn) Then NavnRNr = c.Row
        Next
        If NavnKNr <> 0 And NavnRNr <> 0 Then
            Columns(NavnKNr).Interior.ColorIndex = 3
            Rows(NavnRNr).Interior.ColorIndex = 3
        End If
    End If
    Exit Sub
fejl:
End Sub

Indtastes der fx "Joakim" (uden anførselstegn) i A1, ser arket således ud:

 

A

B

C

D

E

1

Joakim

 

 

 

 

2

 

 Hans

Peter

Ib

Joakim

3

Svend

 

 

 

 

4

Georg

       

5

Joakim

 

 

 

 

6

Ib

 

 

 

 

7

Gorm

 

 

 

 

8

Ivar

 

 

 

 

9

Peter

 

 

 

 

Skrives så Georg eller Helmer fjernes den røde markering, da Georg kun findes i den ene dimension, mens Helmer slet ikke findes.
 

- Tilbage til makroer -
- Tilbage til Excel -