К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Практическ неразрешимая задача по Excel

Гость
0 - 28.04.2012 - 10:07
вообщем задача такая:
в ячейку а1 ввожу числовое значение
нужно чтобы в ячейке б1 появлялась текущая дата
это у меня получилось, но при открытии на следующий деньпредыдущие даты в б1 меняются на текущую, как сделать, чтобы они оставались неизменны?



Гость
1 - 28.04.2012 - 10:50
В Excel неразрешимых задач не существует. Вы вставили в B1 формулу вида =СЕГОДНЯ() или =ТДАТА()

Они пересчитываются при открытии файла, значит если нужно их заморозить - превратите их в значения одним из способов:
1) Скопировать - Спец вставка - как значения
2) Написать макрос, которые будет по сочетанию клавиш типа Ctrl+Q вставлять значение:

Sub PasteAsValue()
ActiveCell.Value = ActiveCell.Value
End Sub

Нажмите Alt+F11, создайте модуль, встаьте макрос, затем из Excel назначьте ему сочетание клавиш.

3) Написать макрос, который автоматически, при закрытии и сохранении файла заменяет формулы в этом же столбце на значения, кроме последней ячейки. Правда есть один нюанс: если заработаться до полуночи - дата может поменяться.
...
Способы наверняка еще есть, времени у меня сегодня мало, поэтому на этих 5 ти минутах остановимся.
Гость
2 - 28.04.2012 - 11:02
1-economist >дело в том, что макросы писать не умею, а остальными способами как понимаю ничего не сделаешь..
первый вариант не катит - слишком рутинно
п.с. ну если что загляните сюда попозже
Гость
3 - 28.04.2012 - 12:32
Задача слишком простая или просто не дописана. Вы вводите какие-то показатели ежедневно в таблицу, хотите чтобы каждый из них имел подпись дата/время ввода, причем так, чтобы нельзя было эту дату специально/случайно изменить. Если задача именно "протоколирование" факта изменений - можно написать более удобный макрос.
...
Макросы не так страшны - например в п. 2 приведен макрос который пишется за секунды, он готов, его просто остается вставить (так же как и вставить ячейки)... В общем, опишите задачу - поможем.
Гость
4 - 28.04.2012 - 13:17
именно ежедневно вношу в таблицу до 30-40 строк следующего вида:
номер поручения дата поручения текущая дата сумма
так вот надо чтобы при вводе номера поручения текущая дата ставилась сегодняшним числом, а когда я завтра эту таблицу открою все даты не стали затрашним числом и принцип работы остался тот же
banned
5 - 28.04.2012 - 13:29
дело в том, что макросы писать не умею
Если без макросов, то
1. Для ячеек, в которых будет дата, устанавливаете условное форматирование по формуле =ЕПУСТО(А1) и выбираете формат текст - белый цвет. Смысл: Если А1 пустая, то в В1 текст не виден.
2. В В1 вписываем формулу =ЕСЛИ(A1;B1;ТДАТА())
3. В1 "растягиваем" на нужные нам ячейки.
4. При открытии книги выскакивает предупреждение о циклических ссылках, которое игнорируем.
Как-то так...
Гость
6 - 28.04.2012 - 13:48
ребята, вы реально монстры, где вы этому учились?
как обычному пользователю до такого дойти?
banned
7 - 28.04.2012 - 14:01
ребята, вы реально монстры
Прикинь, какие монстры те, кто Excel написал! :)

Для снятия ошибки циклических ссылок:
Параметры Excel - Формулы - включить "Включить итеративные вычисления".
Гость
8 - 28.04.2012 - 14:14
спасибо, все работает, только скажите как где и спомощью чего обуздать этот эксель?
banned
9 - 28.04.2012 - 14:21
спасибо, все работает, только скажите как где и спомощью чего обуздать этот эксель?
Открою тайну, как я ответил на Ваш вопрос.
1. http://yandex.ru/yandsearch?text=%D0...id=48648&lr=35
2. Первая ссылка http://www.planetaexcel.ru/forum.php?thread_id=25653
3. Скачивание примера из предпоследнего поста и разбор его;
4. Написание примера под Ваш вопрос;
5. Ответ.
:)))
banned
10 - 28.04.2012 - 14:24
9+
Вот таким способом я изучаю Excel...
;)
Гость
11 - 28.04.2012 - 14:25
10-Технолог >)
Гость
12 - 28.04.2012 - 16:09
Если случайно отключить итерации - вся таблица испортится.
banned
13 - 29.04.2012 - 12:30
Если случайно отключить итерации - вся таблица испортится.
Даже если войти в редактирование формулы и выйти, то уже значение сбросится на 1900. Так что придется автору знакомиться с VBA...
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Target.Offset(0, 1).Value = Now()
End Sub
А дальше уже вводить проверки на введенное значение и т.д, и т.п...
Гость
14 - 29.04.2012 - 23:56
Технолог - ну раз мы монстры - дождемся все-таки реального примера в XLS (надеюсь это не гостайна, ПД или таблица откатов олимпстроя дальневосточных североморцев газмяса). А затем допишем макрос на изменение столбца D или какого там... И выложим-таки файлик... Кстати, в Lotus 1-2-3 и SuperCalc была формула, вычисляемая 1 раз, в момент ввода в ячейку слева.


К списку вопросов






Copyright ©, Все права защищены