Tragedy Публикувано Февруари 4, 2008 Report Share Публикувано Февруари 4, 2008 Здравейте! Ако някой може да ми помогне ще съм много благодарен. Имам следния проблем:Здравейте, Да, има начин това да бъде постигнато. Просто трябва да създадете формула в третата колона, която да изчислява разликата между първите две колони при закръглени стойности на числата вътре. За целта трябва да използвате функцията Round при която като аргументи се посочват а) числото, което ще бъде закръглено и б) броят на числата след десетичната запетая, до които то ще бъде закръглено. Например ако имате числото 1.44444 и напишете Round(1.44444,2), то числото ще бъде закръглено до втория знак след десетичната запетая и ще бъде показано като 1.44. Това е различно от опцията, която сте използвали "(от меню format cells)", защото във Вашия случай закръглянето е само визуално, а числото е запаметено с всички знаци след десетичната запетая и при действия с него тези символи се броят. Докато начина, който Ви описах директно закръгля стойността на числото независимо какво сте избрали да се показва. Ето и как би изглеждала формулата, за която писах по-горе (ако приемем, че първата Ви колона е "А", а втората "В"):=ROUND(A1,2)-ROUND(B1,2) Цитирай Link to comment Сподели другаде More sharing options...
anthany Публикувано Февруари 4, 2008 Report Share Публикувано Февруари 4, 2008 Здравейте, Да, има начин това да бъде постигнато....... Благодаря Ви много! Точно това ми трябваше! Цитирай Link to comment Сподели другаде More sharing options...
adjar55 Публикувано Февруари 4, 2008 Report Share Публикувано Февруари 4, 2008 Привет, Би ли пояснил малко повече как така да се появява с натрупване. Ако можеш дай и пример.________.doc Цитирай Link to comment Сподели другаде More sharing options...
Katerina Публикувано Февруари 4, 2008 Report Share Публикувано Февруари 4, 2008 Здравейте,Нуждая се от формула в Excel, която да изчислява (приход, разход и салдо) за един артикул, като салдото се появява на всеки ред с натрупване за 1 месецЗдравей,ето как направих натрупването ти да е на всеки ред, ето така: http://www.picvalley.net/u/427/106744_333.JPG Цитирай Link to comment Сподели другаде More sharing options...
Lotos16 Публикувано Февруари 12, 2008 Report Share Публикувано Февруари 12, 2008 Здравейте на всички пишещи в тази тема! Радвам се, че Ви открих. Цяла вечер се мъчих да заключа определени клетки от листа и да оставя отключени други, за да мога да защитя някои колони и редове от една таблица от некомпетентна намеса на всезнаещи и всеможещи колежки, но уви...Благодаря на Danina и на panevdd за съветите, макар и отправени към друг потребител, но със същия проблем. Таблицата ми вече е защитена благодарение на Вашите указания. Цитирай Link to comment Сподели другаде More sharing options...
kiskin Публикувано Февруари 23, 2008 Report Share Публикувано Февруари 23, 2008 Интересува ме може ли да се зададе период на валидност на EXCEL-ски файл?(файла да е валиден до определена дата, след което да изписва "невалиден файл" или изобщо да не го отваря?Предварително Ви благодаря!!!Надявам се да ми помогнете??!? Цитирай Link to comment Сподели другаде More sharing options...
panevdd Публикувано Февруари 24, 2008 Report Share Публикувано Февруари 24, 2008 kiskin, можеш да опиташ да въведеш следния код за изпълнение в документа:Sub Auto_Open() Dim exdate As Date exdate = "11/30/2004" If Date > exdate Then MsgBox ("You have reached end of your trail period") ActiveWorkbook.Close End If MsgBox ("You have " & exdate - Date & "Days left") End SubПримерът е взет от Tips.Net. Цитирай Link to comment Сподели другаде More sharing options...
kiskin Публикувано Март 1, 2008 Report Share Публикувано Март 1, 2008 kiskin, можеш да опиташ да въведеш следния код за изпълнение в документа:Sub Auto_Open() Dim exdate As Date exdate = "11/30/2004" If Date > exdate Then MsgBox ("You have reached end of your trail period") ActiveWorkbook.Close End If MsgBox ("You have " & exdate - Date & "Days left") End SubПримерът е взет от Tips.Net. Благодаря много panevdd!!!Извини ме за невежеството, но exdate = "11/30/2004" ли е датата за валидност(за възможност) за отваряне на файла?А как мога след тази дата да активирам отново файла, ако е необходимо???Предварително ти благодаря! Цитирай Link to comment Сподели другаде More sharing options...
panevdd Публикувано Март 2, 2008 Report Share Публикувано Март 2, 2008 Да, командата exdate указва съответната дата, до настъпването на която файлът ще може да се отваря и функционира коректно.Относно повторното активиране на файла след тази дата - сещам се за два начина (в момента нямам инсталиран Excel, за да тествам):1. Чрез промяна на системната дата в съответната операционна система;2. Чрез изключване на изпълнението на макросите в Microsoft Excel - меню Tools -> Macro -> Security. Цитирай Link to comment Сподели другаде More sharing options...
kiskin Публикувано Март 4, 2008 Report Share Публикувано Март 4, 2008 Благодаря ти приятел за съдействието!Вкарах кода и записах документа, като настроих дата 30/12/2008.При повторно отваряне на фаила, го отваря като показва съобщение от Microsoft Visual Basic "Argument not optional"след ОК съобщението изчезва и файла е достъпен. Опитах и с дата 12/30/2008 и пак същото?!? Моля те помогни, какво не е наред? Цитирай Link to comment Сподели другаде More sharing options...
panevdd Публикувано Март 5, 2008 Report Share Публикувано Март 5, 2008 Не се сещам за причина, поради която кодът да не работи; можеш да провериш регионалните си настройки (в случай, че оказват влияние на изписването и обработването на датите). Кажи все пак под каква операционна система и с коя версия на офис пакета работиш.Ето как го направих аз (WindowsXP SP2, OfficeXP SP3):1. Отворих си нов документ в Microsoft Excel;2. Избрах Tools -> Macro -> Visual Basic Editor;3. Отворих (с двойно щракване) обекта ThisWorkbook в раздела Project - VBAProject;4. Въведох следния код:Private Sub Workbook_Open() Dim exdate As Date exdate = "10/03/2008" If Date > exdate Then MsgBox ("Времевият период е изтекъл.") ActiveWorkbook.Close End If MsgBox ("Остават още " & exdate - Date & " дни.") End Sub5. Съхраних документа и го затворих.След тези действия при всяко отваряне на документа се прави проверка на датата, т. е., кодът работи. Цитирай Link to comment Сподели другаде More sharing options...
kiskin Публикувано Март 7, 2008 Report Share Публикувано Март 7, 2008 Не знам дали има значение, но предишния код започваше с :"Sub Auto_Open() ", а този с "Private Sub Workbook_Open()" ?Все пак ти благодаря, този код наистина работи!!Но и лесно се "заобикаля" със смяна на датата !Извинявай, но може ли да се вкара в кода парола за дезактивиране??Май искам невъзможни неща?Ще се радвам, ако стане. Цитирай Link to comment Сподели другаде More sharing options...
panevdd Публикувано Март 7, 2008 Report Share Публикувано Март 7, 2008 Първия код защитава страницата (Sheet), а втория - цялата работна книга (Workbook) в Excel.Предполагам, че проблемът с предишния код е в изписването на датата - в първия пример, който дадох, датата беше във формат "мм/дд/гггг", а във втория пример - "дд/мм/гггг". Ако в регионалните настройки е зададен различен стандарт за изписването на датата, може да възникне проблем при нейната обработка, когато е във вид на променлива. В двата примера съм изписал датата по различен начин, точно защото не знаех как е зададено форматирането в регионалните настройки при теб.Сега за "заобикалянето" на кода: този вид защита може лесно да се "прескочи" не само със смяна на системната дата - ако забраниш изпълнението на макросите в Microsoft Excel, файлът ще се отвори и ще бъде достъпен за редактиране, включително и самият макрос.Принципно можеш да се защитиш от манипулиране на системната дата по следния начин: въвеждаш макрос, който при всяко отваряне на документа да записва някъде датата и часът на отварянето; с команда (или друг макрос) правиш сравнение между вече записаната дата и текущата дата на отваряне. Ако текущата дата на отваряне се окаже по-ранна от вече записаната, следва определено действие - например затваряне на документа.Относно забраната за изпълнение на макросите: можеш да създадеш документ, който да е неизползваем без макросите, които си въвел. При това положение забраната за изпълнение очевидно е безсмислена.Накрая можеш да защитиш определени области от документа с парола, за да ограничиш достъпа до съдържанието в тях. Имай предвид обаче, че тази защита също може да се преодолее - има специално създадени програми за отгатване или разбиване на паролите в документите на Microsoft Office. Цитирай Link to comment Сподели другаде More sharing options...
kiskin Публикувано Март 8, 2008 Report Share Публикувано Март 8, 2008 Благодаря ти panevdd !В общи линиии, това което казваш предполагах, че е възможно, но проблема е че нищо не разбирам от този VB код!?!Можеш ли да съставиш код, който да "защитава от манипулиране на системната дата" и същевременно документа "да е неизползваем без макросите"??Предполагам, че това е доста трудоемка задача Ако не ти се занимава ще те разбера!Ако можеш и имаш време помагай?!? Цитирай Link to comment Сподели другаде More sharing options...
panevdd Публикувано Март 8, 2008 Report Share Публикувано Март 8, 2008 Дай някакъв пример за това, което ще правиш, за да мога да измисля някакъв макрос, който да върши работата. Идеята е основната част от изчисленията в документа да се извършва от макроси - така, ако изпълнението им бъде забранено, документа просто няма да работи.Относно датата - ще потърся нещо и ще пиша. Цитирай Link to comment Сподели другаде More sharing options...
Препоръчан пост