Системна дата

11 отговора 0 прегледа
#1

Системна дата

Здравейте!
Бих искала да попитам, как да присвоя на избрана от мен клетка текуща дата и след това на другия ден да си остане същата дата. Примерно днес е 30.06.2015.
Същата дата съм присвоил на клетка "А1". Утре, когато вече ще е 01.07.2015, то в А1 да си остане 30.06.2015. Благодаря!

Отговор
в отговор на zvezdi4kata_ff #2

Re: Системна дата

функцията за текущото време е NOW()
Можеш да правиш проверка при отваряне на файла:
ако кутийката е празна - слагаш датата,
ако ли не- прескачаш нататъка.
И после кутийката да ти е защитена за пипане с дебела парола..От "майстори" дето обичат да променят това онова...

Отговор
в отговор на zvezdi4kata_ff #3

Re: Системна дата

вариант1 - макрос (както каза бат Гого)
вариант2
в някоя си клетка, например В1, да ти е текущата дата "=TODAY()"
след което клик върху B1 copy - клик върху А1 - Edit -> Paste Special -> Values
естествено А1 трябва да е форматирана за дата
вариант3 пишеш на ръка

Отговор
в отговор на BatiGogo #4

Re: Системна дата

Благодаря ви и на двамата за идеите.

Сега да обясня за какво точно ми трябва това нещо.
В sheet1, в клетка "А1" - пиша "Уведомен" и тогава в клетка "В1" правя проверка, дали в клетка "А1" пише "Уведомен",а ако не, тогава нищо - If(A1="Уведомен";NOW();"") . Тази формула има недостатък, защото всеки път, когато се смени системната дата, същата се променя във всички клетки.

Другия вариант е с VBA

Използвам събитието "Chаnge"

If Worksheets("sheet1").Cells(x,y).value <>"" then
Worksheets("sheet1").Cells(x1, y1).value =NOW()
end if
end sub

Тук става, но пък не е удобно тъй като всеки път когато в съседната клетка напиша "УВЕДОМЕН", компа замръзва, и докато трае проверката, нищо не мога да направя, защото колоната е много дълга.

Ако нещо друго може да се измисли ще съм радостна, да го споделите! Благодаря!

Редактирано от zvezdi4kata_ff на

Отговор
в отговор на zvezdi4kata_ff #5

Re: Системна дата

Не даваш пълна информация, а решението навярно е елементарно.
с това Change голямо обхождане става при всяка промяна
няколко въпроса:
1. В цялата колона "А" ли вкарваш това "Уведомен" или там има и нещо друго?
2. тия променливи в проверката x,y,x1 и y1 от къде ги вземаш?
3. всеки път ли пишеш на ръка "Уведомен"

Редактирано от nepukis на

Отговор
в отговор на zvezdi4kata_ff #6

Re: Системна дата

Явно проверката не я правиш като хората. Нещо от типа на:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim TR As Long, TC As Long
TR = Target.Row
TC = Target.Column
If (TR = 1) And (TC = 1) Then 'A1
If Cells(TR, TC).Value = "Уведомен" Then
Cells(TR, TC + 1).Value = Date 'B1
End If
End If
End Sub



Това е на офис пакет 2003 и при мене не зацикля, независимо колко кутийки имам попълнени.

Та ако беше казала това "Уведомен" кой и кога може да го промени във файла...Така ти идва от някой и предмониторното трябва да напише само дали е уведомено? А ако има вече "Уведомен" в А1 и предмониторното го промени на "майната ти" например и после пак на "Уведомен" - тогава всичката врътка става излишна...

Явно по-подробна информация ще дадеш на десетия пост...Все пак - ти имаш зор, на аз...

Редактирано от BatiGogo на

Отговор
в отговор на zvezdi4kata_ff #7

Re: Системна дата

Ако искаме проверка само на колона "А" има много варианти как да се направи, но понеже съм мързелив бих го направил така:
двоен клик на клетката в която ще пишеш
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
r = Target.Row
k = Target.Column
If k = 1 And Cells(r, k) = "" Then
Cells(r, k) = "Уведомен"
Cells(r, 2) = Now()
End If
End Sub

Отговор
в отговор на BatiGogo #8

Re: Системна дата

Гого, явно мислим доста сходно.
Ама ти мислиш като програмист,а не като потребител. На мене ми се струва, че предмониторното устройство ще е само тя.
Надали разработва таблици за всеобщо ползване.

Отговор
в отговор на nepukis #9

Re: Системна дата

Когато напиша някой код, винаги се старая да съм на мястото на предмониторното. Попадал съм на на такива изобретателни предмониторни (задклавиатурни), че да ти настръхне косата...
Но нашата дама явно е много пестелива в даването на информация за проекта по който работи. Сигурно работи към някой секретен отдел на ЦРУ...

Отговор
в отговор на BatiGogo #10

Re: Системна дата

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

Съкращавайте фразите до размера на мисъл. М.Вайсберг
Отговор
в отговор на nepukis #11

Re: Системна дата

Благодаря на всички!
Идеята ми бе следната: проверявам в колона "А" в активната клетка за "УВЕДОМЕН" и ако има то
в колона "В" на същия ред, клетката си взима текущата дата.

Използвах кода на nepukis с лека редакция от моя страна.

r = Target.Row
k = Target.Column
If k = 1 And Cells(r, k) = "" Then
Cells(r, k) = "Уведомен"
Cells(r, 2) = Now()
End If

Редактирано от zvezdi4kata_ff на

Отговор
в отговор на zvezdi4kata_ff #12

Re: Системна дата

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

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

На първия ти пост отговорът е следния:
Private Sub Workbook_Open()
If Sheet1.Cells(1, 1) = "" Then Sheet1.Cells(1, 1) = Now()
End Sub
Което е доста различно от искания резултат нали?

Редактирано от nepukis на

Отговор