Доброго дня всем! За циклился, не получается реализовать такую функцию Если в ячейках массива (А3:O35) будут любые изменения, тогда в ячейку N1 поставить сегодняшнею дату
Код
=ЕСЛИ((А3:O35)<>»»;»СЕГОДНЯ»;)
Сообщение отредактировал Serge_007 — Суббота, 01.02.2014, 13:07
Ответить
Serge_007
Дата: Суббота, 01.02.2014, 13:09 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 15894
Репутация: 2623 ±
Замечаний:
±
Excel 2016
не получается реализовать такую функцию
И не получится. Функции не могут отслеживать изменения данных [p.s.]Вы приложили абсолютно пустой файл[/p.s.]
ЮMoney:41001419691823 | WMR:126292472390
Ответить
rafsit61
Дата: Суббота, 01.02.2014, 13:21 |
Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 114
Репутация: 1 ±
Замечаний:
20% ±
Excel 360
Serge_007, Очень жаль, попробую поискать возможность отследить изменение хотя бы одной ячейки привязав его к дате,
P.S.Вы приложили абсолютно пустой файл
извините я забыл его запомнить.
К сообщению приложен файл:
4591058.xlsx
(18.3 Kb)
Ответить
AlexM
Дата: Суббота, 01.02.2014, 13:45 |
Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4257
Репутация: 1046 ±
Замечаний:
0% ±
Excel 2003
А если так?
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Serge_007
Дата: Суббота, 01.02.2014, 13:49 |
Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 15894
Репутация: 2623 ±
Замечаний:
±
Excel 2016
AlexM, это не средствами Excel
ЮMoney:41001419691823 | WMR:126292472390
Ответить
gling
Дата: Суббота, 01.02.2014, 13:54 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2449
Репутация: 652 ±
Замечаний:
0% ±
2010
Посмотрите может подойдет. Макросы должны быть включены.
ЯД-41001506838083
Ответить
AlexM
Дата: Суббота, 01.02.2014, 13:56 |
Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4257
Репутация: 1046 ±
Замечаний:
0% ±
Excel 2003
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Serge_007
Дата: Суббота, 01.02.2014, 14:02 |
Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 15894
Репутация: 2623 ±
Замечаний:
±
Excel 2016
Эта ветка — Вопросы по Excel
ЮMoney:41001419691823 | WMR:126292472390
Ответить
rafsit61
Дата: Суббота, 01.02.2014, 14:05 |
Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 114
Репутация: 1 ±
Замечаний:
20% ±
Excel 360
Спасибо всем за реакцию, буду разбираться
Ответить
rafsit61
Дата: Суббота, 01.02.2014, 14:23 |
Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 114
Репутация: 1 ±
Замечаний:
20% ±
Excel 360
AlexM, Да работает, только не пойму- это макрос? Если да, как мне перенести его на мой основной Файл. В Макросах его не видно на ленте инструментов, То же самое в отношении предложения gling,
Ответить
rafsit61
Дата: Суббота, 01.02.2014, 14:47 |
Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 114
Репутация: 1 ±
Замечаний:
20% ±
Excel 360
gling, Ага, нашёл, где это зарыто[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub Range(«N1»).Value = Now Range(«N1»).NumberFormat = «dd.mm.yyyy» & Chr(10) & «hh:mm» End Sub
[/vba]Возможно ли задать всё таки изменения только области (А3:O35), а не всего файла, потому что в этом же файле, нужно будет следить за изменениями таких же других участков?
Сообщение отредактировал Serge_007 — Суббота, 01.02.2014, 14:54
Ответить
AlexM
Дата: Суббота, 01.02.2014, 16:19 |
Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4257
Репутация: 1046 ±
Замечаний:
0% ±
Excel 2003
В Макросах его не видно на ленте инструментов
Ищите в модуле листа, на котором ваша таблица. Код в моем файле учитывает диапазон [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range(«A3:O35»), Target) Is Nothing Then Range(«N1») = Date End Sub
[/vba] В него можно добавить строку как у gling. И добавить еще диапазоны. Получится так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Range(«A3:O35,T3:Z35»), Target) Is Nothing Then Range(«N1») = Date End Sub
[/vba]
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Diffuser
Дата: Вторник, 03.06.2014, 16:44 |
Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний:
0% ±
Excel 2007
AlexM, а подскажите, плз! Как преобразовать код, чтобы это срабатывало не при ручном вводе данных в ячейки этого диапазона, а если изменения в диапазоне производятся по формуле. Уже месяц не могу решения найти, не могу никак справиться с Worksheet Calculate. Знаний недостаточно.
Цитата
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Range(«A3:O35,T3:Z35»), Target) Is Nothing Then Range(«N1») = Date End Sub
Сообщение отредактировал Diffuser — Вторник, 03.06.2014, 16:45
Ответить
AlexM
Дата: Вторник, 03.06.2014, 17:11 |
Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4257
Репутация: 1046 ±
Замечаний:
0% ±
Excel 2003
Diffuser, Вам надо отслеживать изменение тех ячеек, которые являются аргументами формул.
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Diffuser
Дата: Вторник, 03.06.2014, 17:52 |
Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний:
0% ±
Excel 2007
Вот мой пример. Если в диапазоне C5:C3000 в результате пересчета формул меняется значение ячейки, то происходит очистка смежных ячеек в столбцах D, E и J. затем данные сортируются.
Цитата
Private Sub Worksheet_Change(ByVal target As Range) If target.Cells.Count > 1 Then Exit Sub If Not Intersect(Range(«C5:C3000»), target) Is Nothing Then Range(«D5:E5,J5»).ClearContents With ActiveWorkbook.Worksheets(«Лист2»).AutoFilter.Sort .SortFields.Clear .SortFields.Add Key:=Range(«F5:F» & Range(«D» & Rows.Count).End(xlUp).Row), Order:=xlAscending .SortFields.Add Key:=Range(«G5:G» & Range(«E» & Rows.Count).End(xlUp).Row), Order:=xlAscending .Apply End With End Sub
Этот код работает, если я вношу изменения C5:C3000 вручную. —————————————————————————————
А вот я нашел и применил другой код к одной ячейке, по Workshhet Calculate. Как этот код применить к каждой ячейке с C5 по C3000 я не знаю. Не прописывать же к каждой такой код?
Цитата
Private Sub Worksheet_Calculate() Static OldVal1 As Variant, OldVal2 As Variant If Range(«C5»).Value <> OldVal1 Then OldVal1 = Range(«C5»).Value Range(«D5:E5,J5»).ClearContents End If End Sub
Если в ячейке C5 в результате пересчета формулы меняется значение ячейки, то происходит очистка смежных ячеек в столбцах D5, E5 и J5. Код работает, но мне бы еще сюда вставить сортировку из первого кода:
Цитата
With ActiveWorkbook.Worksheets(«Лист2»).AutoFilter.Sort .SortFields.Clear .SortFields.Add Key:=Range(«F5:F» & Range(«D» & Rows.Count).End(xlUp).Row), Order:=xlAscending .SortFields.Add Key:=Range(«G5:G» & Range(«E» & Rows.Count).End(xlUp).Row), Order:=xlAscending .Apply End With
Ответить
AlexM
Дата: Вторник, 03.06.2014, 18:58 |
Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4257
Репутация: 1046 ±
Замечаний:
0% ±
Excel 2003
Лучше файлик на 30 строк. Думаю надо применить то что я в сообщении №14 посоветовал
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Diffuser
Дата: Вторник, 03.06.2014, 19:41 |
Сообщение № 17
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний:
0% ±
Excel 2007
Вот файлик.
Описание работы:
Есть два файла — «Инвентаризационная» и «База данных с группами123456789». В файле «База данных с группами123456789» ячейка C5 извлекает код из ячейки B17 в файле «Инвентаризационная». Моя главная задача: если в ячейке C5 в первом файле меняется код — очищаются ячейки D5, E5 и J5. И затем если D5, E5 и J5 становятся пустыми, то по коду моей сортировки они опускаются вниз.
Для наглядности того, что этот вариант работает. Меняем в ячейке B17 в файле «Инвентаризационная» номенклатурный код и видим, что файле «База данных с группами123456789» в ячейке C5 обновился код, но не очистились D5, E5 и J5. А вот если вручную сменить в ячейке C5 значение — D5, E5 и J5 очищаются и сортируются вниз.
По поводу отслеживания — поищу, спасибо!
Ответить
AlexM
Дата: Среда, 04.06.2014, 00:32 |
Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4257
Репутация: 1046 ±
Замечаний:
0% ±
Excel 2003
У вас оказывается два файла, о чем вы написали только в последнем сообщении. После конвертирования этих файлов в формат Excel2003 ни одна формула связи с файлом «Инвентаризационная» не работает из-за отличия расширений. Постоянно запускается Макрос1 и останавливается на ошибке. Извините, я пока не знаю чем помочь.
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Ответить
Diffuser
Дата: Среда, 04.06.2014, 10:16 |
Сообщение № 19
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний:
0% ±
Excel 2007
AlexM, гляньте еще пожалуйста вот этот вариант. Оба файла сделал в xls, код во втором файле скорректировал. Задача все та же. Заранее спасибо!
К сообщению приложен файл:
zaq.zip
(43.6 Kb)
Ответить
Diffuser
Дата: Пятница, 13.06.2014, 13:12 |
Сообщение № 20
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний:
0% ±
Excel 2007
Задача чуть успростилась. Необходимо, чтобы по этому коду очищался не весь диапазон столбцов, а лишь в тех строках, в которых произошел пересчет и изменение значения ячейки.
[vba]
Код
Option Explicit
Private Sub Worksheet_Calculate() Dim r As Long Application.EnableEvents = False For r = 7 To 100 If Cells(r, 3).Value <> ThreeC(r, 1) Then ThreeC(r, 1) = Cells(r, 3).Value: Cells(r, 12) = 0 Cells(r, 5).Resize(1, 2).ClearContents: Cells(r, 10).ClearContents End If Next Application.EnableEvents = True End Sub
После завершения лабораторной работы номер 5 выполнить тестовые задания из таблицы 3.5
Таблица 3.5
Тестовое задание
Ответ
Абсолютный адрес в Excel – это 1. полный адрес, указывающий номера строки и столбца клетки 2. адрес, в котором не перенастраиваются номера строк 3. адрес, в котором не перенастраиваются номера столбцов 4. адрес, в котором не перенастраиваются номера строк и столбцов выбрать правильное
Рабочая страница в Excel содержит 1. программное окно 2. внутреннее окно 3. нижнее окно 4. правое окно выбрать правильный ответ
Создание формулы в Excel начинается с ввода знака 1.: 2. = 3. / 4. выбрать правильный ответ
Продолжение таблицы 3.5
Тестовое задание
Ответ
Формула, записанная в ячейку С1, при копировании в С2 примет вид…
Формула, записанная в ячейку С1, при копировании в С2 примет вид…
Формула, записанная в ячейку С1, при копировании в С2 примет вид…
Формула, записанная в ячейку С1, при копировании в С2 примет вид…
Запись числа в ячейке таблицы в виде 1.1Е+11 соответствует числу 1. 110000000000 2. 0,00000000011 3. 1,10000000001 4. 1,00000000011 выбрать правильный ответ
После вычисления в ячейке С2 будет число…
Продолжение таблицы 3.5
Тестовое задание
Ответ
После изменения данных в каких-либо ячейках MS Excel происходит пересчет… 1. только формул, имеющих непосредственную ссылку на эти ячейки 2. всех формул, имеющих ссылки на эти ячейки на любой стадии цепочки ссылок 3. только формул на текущем листе со ссылками на эти ячейки выбрать правильный ответ
После вычисления в ячейке С2 будет число…
Для построения графика функции Y(x) потребуется указать диапазон 1. A2:A20 2. B2:B20 3. A2:B20 выбрать правильный ответ
После вычисления в ячейке С2 будет число…
Продолжение таблицы 3.5
Тестовое задание
Ответ
Для построения графиков функций y(x) и z(x) потребуется указать диапазон 1. A2:A20; B2:B20;C2:C20 2. A2:C20 3. B2:C20 выбрать правильный ответ