Hirdetés

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

  • mh197

    őstag

    Sziasztok!

    Segítséget szeretnék kérni excelben.

    Az adott munkafüzet celláit védeni kellene a cellaformázás ellen, de nem minden cellát. Jelenleg a lapvédelmet ha bekapcsolom, akkor hiába veszem ki a pipát a védelem - > "zárolt" helyről, akkor azok a cellák attól ugyanúgy nem formázhatóak cellaformázással, jobb klikk esetén azokra a cellákra ugyanúgy inaktív marad a cellaformázás menüpont. Tudom, hogy a lapvédelemnél be lehet pipálni, hogy a védelem bekapcsolása esetén lehessen a cellákat formázni, de az meg azért nem jó, mert 5 db cellán kívül ez ellen az összeset védeni kellene.

    Miért kell a cellaformázhatósága: van egy makró benne, hogy cserélődjenek a színek az alábbiak szerint:

    Public Idozites As Double
    Sub Villogas_ki()
    Range("F5:G6").Font.ColorIndex = xlAutomatic
    Range("F5:G6").Font.Color = RGB(255, 0, 0)
    Range("F5:G6").Interior.Color = RGB(255, 204, 153)
    Application.OnTime Idozites, "Szincsere", , False
    End Sub

    Sub Szincsere()
    If Range("F5:G6").Font.Color = RGB(255, 0, 0) Then
    Range("F5:G6").Font.Color = RGB(0, 0, 255)
    Range("F5:G6").Interior.Color = RGB(255, 0, 0)
    Else
    Range("F5:G6").Font.Color = RGB(255, 0, 0)
    Range("F5:G6").Interior.Color = RGB(255, 204, 153)
    End If
    Idozites = Now + TimeSerial(0, 0, 1)
    Application.OnTime Idozites, "Szincsere", , True
    End Sub

    ---

    Public Most_villog As Boolean
    Private Sub Workbook_Open()
    MsgBox "Üdvözlöm a feladat nyilvántartásban!"
    If Range("A2") <> "0" And Most_villog = False Then
    Call Szincsere
    Most_villog = True
    ElseIf Range("A2") = "0" And Most_villog = True Then
    Call Villogas_ki
    Most_villog = False
    End If
    End Sub

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI Then
    MsgBox "A 'mentés másként' funkció NEM HASZNÁLHATÓ!!!"
    MsgBox "A táblázat NEM KERÜLT MENTÉSRE! Mentse ISMÉT a 'mentés' gombbal!!!", vbInformation
    Cancel = True
    End If
    If Range("A2") = "0" And Most_villog = True Then
    Call Villogas_ki
    Most_villog = False
    ElseIf Range("A2") <> "0" And Most_villog = False Then
    Call Szincsere
    Most_villog = True
    End If
    End Sub

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If MsgBox("Biztosan be akarja zárni a feladat nyilvántartást ?", 36, "Confirm") = vbNo Then
    Cancel = True
    End If
    End Sub

    Ahogy ebben látható az F5:G6 tartomány színe változna az A2 értéke függvényében. Lényegében az adott munkafüzetben az F5:G6 tartományban lévő cellákon kívül mindegyiknek védettnek kellene lenni cellaformázás ellen, ha a lapvédelmet bekapcsolom. Mindez azért kellene, mert ha az F5:G6 tartomány cellaformázás ellen védetté válik a lapvédelem bekapcsolásával, akkor a "színcsere" nem tud futni ezeken a cellákon.. :O

    Erre van esetleg valakinek itt ötlete, hogyan lehetne megoldani?? :W

    Előre is köszönök minden építő jellegű hozzászólást! :R

    Szép hétvégét!

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