Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Fferi50

    Topikgazda

    válasz Delila_1 #23344 üzenetére

    Szia!

    Szerintem nem beszéltünk el egymás mellett, de ez nem is lényeges.
    A 2010-es exceltől biztosan (de valószínűleg a 2007-ben is már) igen egyszerűen megoldható a feladat:

    Public fmtcondis As New Collection
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim ujfmtr As FormatCondition, ujfmtc As FormatCondition, ujfmtt As FormatCondition
    On Error Resume Next
    If IsError(Target.Cells.Count) Then Exit Sub
    On Error GoTo 0
    If Target.Cells.Count <> 1 Then Exit Sub
    If fmtcondis.Count > 0 Then
    On Error Resume Next
    For Each fmt In fmtcondis
    fmt.Delete
    fmtcondis.Remove 1
    Next
    On Error GoTo 0
    End If
    With Target
    With .EntireRow
    Set ujfmtr = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
    With ujfmtr '.FormatConditions(1)
    With .Borders(xlTop)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = 5
    End With
    With .Borders(xlBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = 5
    End With
    .Interior.ColorIndex = 20
    .SetFirstPriority
    End With
    End With
    fmtcondis.Add ujfmtr, "fmt1"
    With .EntireColumn
    Set ujfmtc = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
    With ujfmtc '.FormatConditions(1)
    With .Borders(xlLeft)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = 5
    End With
    With .Borders(xlRight)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = 5
    End With
    .Interior.ColorIndex = 20
    .SetFirstPriority
    End With

    End With
    fmtcondis.Add ujfmtc, "fmt2"
    Set ujfmtt = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
    ujfmtt.Interior.ColorIndex = 36
    ujfmtt.SetFirstPriority
    fmtcondis.Add ujfmtt, "fmt3"
    End With
    End Sub

    Hiszen itt már be lehet szúrni "akárhány" feltételes formázást és elsőnek tenni, ha pedig megváltozik a kijelölés, akkor az előző formázást törölni.
    Ha egy kijelölés közben megváltoztatod az oldalon a feltételes formázási szabályokat, akkor nem tudja a kijelölés elhagyása után letörölni a régi formázást - viszont, ha már úgyis benne vagy a szabályokban, egyszerűen ki kell törölni a kijelölésre vonatkozó feltételes formázásokat, utána az új kijelöléstől már ismét működik az automatizmus.

    2007. előttre olyan ötletem van, hogy az adott munkalapról csinálni kell egy másolatot és arról minden kijelölés váltásnál vissza kell másolni a formátumot az eredetire.

    Üdv.

Új hozzászólás Aktív témák