Системна дата
11 отговора
0 прегледа
Системна дата
Здравейте!
Бих искала да попитам, как да присвоя на избрана от мен клетка текуща дата и след това на другия ден да си остане същата дата. Примерно днес е 30.06.2015.
Същата дата съм присвоил на клетка "А1". Утре, когато вече ще е 01.07.2015, то в А1 да си остане 30.06.2015. Благодаря!
Бих искала да попитам, как да присвоя на избрана от мен клетка текуща дата и след това на другия ден да си остане същата дата. Примерно днес е 30.06.2015.
Същата дата съм присвоил на клетка "А1". Утре, когато вече ще е 01.07.2015, то в А1 да си остане 30.06.2015. Благодаря!
Re: Системна дата
функцията за текущото време е NOW()
Можеш да правиш проверка при отваряне на файла:
ако кутийката е празна - слагаш датата,
ако ли не- прескачаш нататъка.
И после кутийката да ти е защитена за пипане с дебела парола..От "майстори" дето обичат да променят това онова...
Можеш да правиш проверка при отваряне на файла:
ако кутийката е празна - слагаш датата,
ако ли не- прескачаш нататъка.
И после кутийката да ти е защитена за пипане с дебела парола..От "майстори" дето обичат да променят това онова...
Re: Системна дата
вариант1 - макрос (както каза бат Гого)
вариант2
в някоя си клетка, например В1, да ти е текущата дата "=TODAY()"
след което клик върху B1 copy - клик върху А1 - Edit -> Paste Special -> Values
естествено А1 трябва да е форматирана за дата
вариант3 пишеш на ръка
вариант2
в някоя си клетка, например В1, да ти е текущата дата "=TODAY()"
след което клик върху B1 copy - клик върху А1 - Edit -> Paste Special -> Values
естествено А1 трябва да е форматирана за дата
вариант3 пишеш на ръка
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
Тук става, но пък не е удобно тъй като всеки път когато в съседната клетка напиша "УВЕДОМЕН", компа замръзва, и докато трае проверката, нищо не мога да направя, защото колоната е много дълга.
Ако нещо друго може да се измисли ще съм радостна, да го споделите! Благодаря!
Сега да обясня за какво точно ми трябва това нещо.
В 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 на
Re: Системна дата
Не даваш пълна информация, а решението навярно е елементарно.
с това Change голямо обхождане става при всяка промяна
няколко въпроса:
1. В цялата колона "А" ли вкарваш това "Уведомен" или там има и нещо друго?
2. тия променливи в проверката x,y,x1 и y1 от къде ги вземаш?
3. всеки път ли пишеш на ръка "Уведомен"
с това Change голямо обхождане става при всяка промяна
няколко въпроса:
1. В цялата колона "А" ли вкарваш това "Уведомен" или там има и нещо друго?
2. тия променливи в проверката x,y,x1 и y1 от къде ги вземаш?
3. всеки път ли пишеш на ръка "Уведомен"
Редактирано от nepukis на
Re: Системна дата
Явно проверката не я правиш като хората. Нещо от типа на:
Това е на офис пакет 2003 и при мене не зацикля, независимо колко кутийки имам попълнени.
Та ако беше казала това "Уведомен" кой и кога може да го промени във файла...Така ти идва от някой и предмониторното трябва да напише само дали е уведомено? А ако има вече "Уведомен" в А1 и предмониторното го промени на "майната ти" например и после пак на "Уведомен" - тогава всичката врътка става излишна...
Явно по-подробна информация ще дадеш на десетия пост...Все пак - ти имаш зор, на аз...
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 на
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
двоен клик на клетката в която ще пишеш
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
Re: Системна дата
Гого, явно мислим доста сходно.
Ама ти мислиш като програмист,а не като потребител. На мене ми се струва, че предмониторното устройство ще е само тя.
Надали разработва таблици за всеобщо ползване.
Ама ти мислиш като програмист,а не като потребител. На мене ми се струва, че предмониторното устройство ще е само тя.
Надали разработва таблици за всеобщо ползване.
Re: Системна дата
Когато напиша някой код, винаги се старая да съм на мястото на предмониторното. Попадал съм на на такива изобретателни предмониторни (задклавиатурни), че да ти настръхне косата...
Но нашата дама явно е много пестелива в даването на информация за проекта по който работи. Сигурно работи към някой секретен отдел на ЦРУ...
Но нашата дама явно е много пестелива в даването на информация за проекта по който работи. Сигурно работи към някой секретен отдел на ЦРУ...
Re: Системна дата
Ако става въпрос за еднотипни записи на много редове, може би
трябва да махнеш проверката за ред. Ще рече - ако в колона X на някой ред
напишеш каквото и да е, в колона Y на същия ред ще фиксирам този момент.
Съкращавайте фразите до размера на мисъл. М.Вайсберг
трябва да махнеш проверката за ред. Ще рече - ако в колона X на някой ред
напишеш каквото и да е, в колона Y на същия ред ще фиксирам този момент.
Съкращавайте фразите до размера на мисъл. М.Вайсберг
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
Идеята ми бе следната: проверявам в колона "А" в активната клетка за "УВЕДОМЕН" и ако има то
в колона "В" на същия ред, клетката си взима текущата дата.
Използвах кода на 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 на
Re: Системна дата
Звездичке, един съвет(а и за всички).
Когато имаш някакво затруднение и някакъв въпрос. Описвай накратко целия проект. За какво ще служи, какво искаш да направиш, ти ли ще работиш само на него или за всеобщо ползване и т.н. А след това конкретния проблем (въпрос).
Ако беше писала от начало например:" в колона "С" имам въведени лица, които трябва да уведомя за нещо си и искам да в колона "В" да се отбележи кога съм ги уведомила. Пробвах това и това, ама не става. Дайте съвет."
тогава вероятно би получила незабавен отговор и нямаше нужда от толкова излишни постове и нямаше нужда да гадаем какво е искал да каже поета
.
На първия ти пост отговорът е следния:
Private Sub Workbook_Open()
If Sheet1.Cells(1, 1) = "" Then Sheet1.Cells(1, 1) = Now()
End Sub
Което е доста различно от искания резултат нали?
Когато имаш някакво затруднение и някакъв въпрос. Описвай накратко целия проект. За какво ще служи, какво искаш да направиш, ти ли ще работиш само на него или за всеобщо ползване и т.н. А след това конкретния проблем (въпрос).
Ако беше писала от начало например:" в колона "С" имам въведени лица, които трябва да уведомя за нещо си и искам да в колона "В" да се отбележи кога съм ги уведомила. Пробвах това и това, ама не става. Дайте съвет."
тогава вероятно би получила незабавен отговор и нямаше нужда от толкова излишни постове и нямаше нужда да гадаем какво е искал да каже поета
На първия ти пост отговорът е следния:
Private Sub Workbook_Open()
If Sheet1.Cells(1, 1) = "" Then Sheet1.Cells(1, 1) = Now()
End Sub
Което е доста различно от искания резултат нали?
Редактирано от nepukis на