14. marts 2016 - 13:13Der er
14 kommentarer og 1 løsning
Betinget formatering/Rulleliste
Hej!
jeg har 2 faneblad, og på faneblad 2 har jeg rulleliste med 25 navne, og de har hver især eget farve
På faneblad 1 har jeg planlægningsoversigt, hvor jeg sætter navne på vagtplan, og her klikker jeg på rullemenu og vælger navn, det funker. Men jeg vil gerne at det farve jeg har defineret i faneblad 2, også vises på vagtplanen på faneblad 1, kan man det?
Med lidt makro kan det lade sig gøre. Jeg antager at du har de 25 navne stående i cellerne A1:A25 på "Sheet2" og du på "Sheet1" ønsker at indsætte navnene i kolonne F. Så vil den nødvendige makro, som skal indsættes ved at højreklikke på "Sheet1"s faneblad og vælge View Codes for eksempel se således ud:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("F:F")) Is Nothing Then x = Application.Match(Target, Sheets("Sheet2").Range("A1:A25")) Target.Interior.Color = Sheets("Sheet2").Cells(x, 1).Interior.Color End If End Sub
Du får lige en lidt længere makro, så du også kan fjerne farven ved at slette cellens indhold:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("F:F")) Is Nothing Then If Target = "" Then Target.Interior.ColorIndex = xlNone Else x = Application.Match(Target, Sheets("Sheet2").Range("A1:A25")) Target.Interior.Color = Sheets("Sheet2").Cells(x, 1).Interior.Color End If End If End Sub
Den virker på en måde, den tager baggrund farven, men ikke selve tegnfarve, dvs selve ordet er skrevet i f.eks. rødt, det er den jeg vil have med over, ikke baggrund, for på sheed1 er der forskellige baggrundfarver, den skal ikke påvirkes af hvad baggrundfarve der er på sheet2, kan du følge mig?
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("F:F")) Is Nothing Then If Target = "" Then Target.Font.ColorIndex = xlNone Else x = Application.Match(Target, Sheets("Sheet2").Range("A1:A25")) Target.Font.Color = Sheets("Sheet2").Cells(x, 1).Font.Color End If End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("F:F")) Is Nothing Then Target.Interior.ColorIndex = xlNone If Target = "" Then Target.Font.ColorIndex = xlNone Else x = Application.Match(Target, Sheets("Sheet2").Range("A1:A25")) Target.Font.Color = Sheets("Sheet2").Cells(x, 1).Font.Color End If End If End Sub
Den løste desværre ikke problemet, teksten er stadig sort, og baggrunden er hvid, men ændrede så ved Target.Interior.ColorIndex = xlNone så der stod Font istedet for Interior, men teksten vises staidg ikke i den farve jeg har defineret inde i Sheet2
Det var den, men synes den opfører lidt underlig nu, nu tager de til dels data fra selvsamme ark, og til dels fra andet ark med rulleliste... Kan jeg evt. sende kopien til dig?
Undskyld forsinkelsen. Jo, jeg har fået mailen, men det var ikke så simpelt, som jeg havde håbet. Og så kom der en påskeferie i et internet-frit område. Jeg kigger på den i weekenden.
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.