Планиране на Изходните данни - част 2

Безплатни 20 урока
регистрирай се и научи

Ако сте вече потребител - Регистриран съм
Видео

Допълнение:

Основни принципи при планиране на Pivot таблици:

  • Много добре да се прецени накъде ще се разширяват ( expand ) Pivot таблиците.Надолу или надясно за да знаем къде да оставим празно място.
  • Озаглавяване на клетките над всяка Pivot таблицa, с цел по - лесна ориентация.Наименоване на тези клетки.
  • Заключване на листa ( sheet ) с парола, с цел да се ограничи възможността за редакция от всеки.

Въпроси и отговори

  • Как да защитя таблицата?

    Свилен Петков:

    Как мога да защитя една таблица така, че вече въведените данни да не могат да се трия или редактират без парола, а в същото време да могат да се вкарват нови данни в таблицата без парола?

    Краси Кръстев:

    Здравей, ето тук:

    Заключване на една определена клетка в Excel

    е показано как може да заключиш определени клетки от един лист в Ексел.

    Свилен Петков:

    Здрасти . Видях го това, но не ми върши работа. Ясно е как се защитава клетка лист или цял файл. Може би не съм си задал правилно въпроса. Идеята е да се защитят въведените данни в обекта таблица, и в същото време да може да се добавят данни (редове и колони) без парола. Въведени един път данните да не могат да се редактират или трият без парола. Примера е следния: имаме таблица с данни която се развива във времето от различни потребители. Идеята е тези потребители да могат да допълват таблицата, но да не могат да редактират въведените по стари данни.

    Краси Кръстев:

    Така,

    Имам данните в таблицата показани на снимка 1, съответно въвеждаме N на брой редове, запазваме и затваряме файла.

    Снимка_1

    Отваряме файла отново (снимка 2) искаме въведените данни в листа по никакъв начин да не бъдат редактирани, освен от човека който има паролата.

    Ето например въвеждам данни в коя да е клетка (снимка 2 позиция 1) и нямам проблем с това, опитвам се да отворя променя обаче клетка за която въведох данни в първото отваряне и запазване на файла, НО там не мога да си го позволя.

    Снимка_2

    Съоветно запазвам файла пак с нововъведените стойности и го затварям.

    Отварям файла отново (снимка 3). Мога да въведа какви да било данни (снимка 3 позиция 1 и 2), НО НЕ мога да редактирам не само клетките от първото отваряне, запазване и затваряне ами и от второто, (снимка 3 позиция 3 и 4)

    При всяко затваряне на файла клетките със запис се заключват и само човека знаещ паролата може да ги редактира, в другите клетки имате възможност да въведете пак повтарям каквито и да било данни - текстови, числови, дати.

    Снимка_3

    Надявам се това е крайната цел

    Това може да се постигне посредством този VBA код:


    Option Explicit
    Dim wr As Range, wcell As Range
    
    &#039; this code goes at ThisWorkbook module     <--------
    
    Private Sub Workbook_Activate()
        Initial
    End Sub
    
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Set wr = ThisWorkbook.Worksheets("S2").Range("a1:ad2000")  &#039; editable range
    For Each wcell In wr
        Select Case wcell.Interior.ColorIndex
            Case xlNone
                &#039; no action
            Case Else
                 wcell.Interior.ColorIndex = xlNone
                 If wcell.Value <> "" Then wcell.Locked = True      &#039; no more changes
        End Select
    Next
    End Sub
    
    Private Sub Workbook_Open()
        Initial
    End Sub
    
    Sub Initial()
    
    ThisWorkbook.Worksheets("S2").Protect Password:="krasi", userinterfaceonly:=True
    Set wr = ThisWorkbook.Worksheets("S2").Range("a1:ad2000")
    wr.Interior.ColorIndex = xlNone
    
    For Each wcell In wr
        wcell.Locked = False
        If wcell.Value <> "" Then wcell.Locked = True
    Next
    
    End Sub
    
    

    Съответно, трябва да си го напаснете спрямо вашия файл, тук е направен съвсем примерен за лист с определено име и с определен диапазон от клетки върху които се прилага естествено, в смисъл може да оставите част от листа където не искате да се изпълнява този код. Идеята е кода да се стартира при самото отваряне на файла, задължително.

    Така че правиш кода да ти се старитира при отваряне на файла и съответно го нагласяш така че да отговаря на твоя файл и целта е постигната.

    Може да смениш и паролата в момента тя е "krasi"

    Надявам се да съм бил полезен с отговора.

    Свилен Петков:

    Да много благодаря, точно това ми трябваше да разбера как става. Остава само да напредна малко с VBA и ще го пробвам. Все пак повечето неща в Excel могат да се направят по няколко различни начина. Дали няма и друг по лесен вариант за постигане на същото?

    Краси Кръстев:

    Ами на този етап е това което предложих по-горе.Ако искате нещо да се върши без външна намеса и искате динамичност, за мен най-удачния вариант е VBA.

    Свилен Петков:

    Благодаря!

    Филиз Велиева:

    Здравейте, описаният начин от вас при мен не се получава. Въвеждам данни, запазвам ги, след това слагам паролата. Когато отворя листа с данните ми изисква парола, тоест защитата е на целия лист, а не само върху една област.

    Филиз Велиева:

    Получи ми се, след това обърнах внимание на това с CNTR+A за маркиране на страницата и премахване на отметката на locked, с който се премахват заключени клетки, ако има такива.

  • Как да форматирам групирани по месец редове/колони в Pivot таблица?

    Маргарита:

    Здравейте,

    Правя Pivot таблица, която съдържа дати на продажби в редовете си. Тъй като на мен ми трябват на месечна база, ги групирам по месец и година от опциите на Pivot таблицата. Въпросът ми е как месеците да се визуализират с целите си имена, а не като "яну, фев" и т.н? В идеалния вариант даже ми трябват на английски, а не на български- "January, February". Пробвах с Format Cells на самите редове от Pivot като задавах Custom format/ Date, но нищо не се получава.

    Благодаря предварително! :)

    Никола Петров:

    А в таблицата как са написани месеците - на български с кратки имена или на английски? Напишете ги още в таблицата на английски с пълните имена и при създаването на осевата таблица(не одобрявам името "пивот") те ще си бъдат с пълните имена! Лек ден и успехи!

    Маргарита:

    В първоначалната таблица датите са със следния формат "01.02.2017". При групирането им по месеци, изглеждат така: "фев". А това, което искам е да бъдат с пълните имена на месеца на български или на английски.

    • Не се получава и при промяна на формата на датите в таблицата с изходните данни.
    Никола Петров:

    Въпросът не беше ли за месеците? Създайте си списък с месеците и дано да помогне! Лек ден и успехи!

    Маргарита:

    Благодаря Ви за отговора, г-н Петров!

    Въпреки списъците, пак не успявам да постигна желания резултат.

    Така изглежда таблицата сега (месеците в червено):

    А това е, което искам да постигна ( Тук ръчно съм редактирала наименованията на редвете, за да покажа идеята си):

    Никола Петров:

    При мен, както се вижда в List entries, тези месеци не са осветени, докато друг списък, който съм направил, е осветен. Което, според мен, това, че не е осветен, означава настройки по подразбиране! Лек ден и успехи!