Avatar billede jensen363 Forsker
04. juni 2009 - 14:05 Der er 3 kommentarer og
1 løsning

Makro : Markér kolonne og række

I en matrix har jeg eksempelvis 10 rækker og 5 kolonner.

De 5 kolonner repræsenterer 5 landekoder og de 10 rækker repræsenterer 10 landekoder, incl. de samme landekoder som er repræsenteret i mine kolonner.

Bruger skal i matrixen have fokus på de data hvor række og kolonne mødes, dvs. hvis jeg i en dropdownbox har valgt eksemlevis DK, som står i kolonne 3 og tilsvarende i række 8, skal hele kolonne 3 i matrixområdet og række 8 i matrixområdet markeres/indrammes/farvelægges.

Nogen ideer til hvorledes dette gøres ???
Avatar billede jkrons Professor
05. juni 2009 - 15:17 #1
Denne kode i arkets kodemodul bør kunne give det ønskede resultat. Ret selv matrixentil og evt. farven. Der forventes dropdown i celle A1.


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("b4:f4").Cells
            If UCase(c.Value) = UCase(Navn) Then NavnKNr = c.Column
        Next
        For Each c In Range("a3:a12").Cells
            If UCase(c.Value) = UCase(Navn) Then NavnRNr = c.Row
        Next
        Debug.Print NavnKNr, NavnRNr
        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
Avatar billede jensen363 Forsker
26. juni 2009 - 14:00 #2
Hej jkrons >

Benyttede en anden løsning, men er ikke i tvivl om at din løsning virker :

Private Sub Worksheet_SelectionChange(ByVal Target _
As Excel.Range)
    '
    'Nulstiller baggrundsfarve
    '
    Cells.Interior.ColorIndex = xlNone
    Cells.Font.ColorIndex = 1
    '
    'Markerede celles række og kolonne får den farveværdi,
    'som er indtastet i celle A2
    '
    With ActiveCell
       
    Range("D9:T81").Interior.ColorIndex = 1
       
        .EntireRow.Interior.ColorIndex = [A2]
        .EntireRow.Font.ColorIndex = [A3]
        .EntireColumn.Interior.ColorIndex = [A2]
        .EntireColumn.Font.ColorIndex = [A3]
   
    End With

End Sub
Avatar billede jensen363 Forsker
26. juni 2009 - 14:00 #3
Læg venligts et svar
Avatar billede jkrons Professor
26. juni 2009 - 14:53 #4
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