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

  • Sprite75

    tag

    válasz Delila_1 #32352 üzenetére

    Átolvasgattam mindent amit annak idején Fferi50 - el írogattatok ezzel kapcsolatban, és végül is sikerült úgy, hogy a munkalapon tudok használni feltételes formázást úgy hogy a "célkereszt" is jól működik.

    Egy kis összefoglaló ha valakinek később kellene

    Ezt a kódot kell a Munka1 kódlapjára

    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

    Ezt pedig a ThisWorkbook -ra

    Public kilepo As Boolean
    Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    If kilepo Then Exit Sub
    Application.ScreenUpdating = False
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Offset(0, -1).Select
    Application.ScreenUpdating = True
    End Sub

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If MsgBox("Valóban kilép?", vbQuestion + vbYesNo, "Bezárás") = vbNo Then
    Cancel = True
    Else
    valasz = MsgBox("Menti a változásokat?", vbQuestion + vbYesNoCancel, "Bezárás")
    If valasz = vbCancel Then Cancel = True: Exit Sub
    If Munka1.fmtcondis.Count > 0 Then
    For Each fmt In Munka1.fmtcondis
    fmt.Delete
    Munka1.fmtcondis.Remove 1
    Next
    End If
    If valasz = vbNo Then
    ThisWorkbook.Saved = True
    kilepo = True
    Else
    kilepo = True
    ThisWorkbook.Save
    End If
    End If
    End Sub

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Munka1.fmtcondis.Count > 0 Then
    For Each fmt In Munka1.fmtcondis
    fmt.Delete
    Munka1.fmtcondis.Remove 1
    Next
    End If
    End Sub

    Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Offset(0, -1).Select
    Application.ScreenUpdating = True
    End Sub

    Így ez a célkereszt a kijelölt cellára a Munka1 nevű lapon működik.

    Ha pedig ugyanezen a lapon feltételes formázást is kell használni akkor az itt leírtakat kell alkalmazni.

    Még egyszer köszönöm Delila_1 és persze Fferi50

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