Всем привет. Делаю журнал регистрации. Задача такая: нужен макрос, при запуске которого в столбце, содержащем 1,2,3 и т.д. каждый раз будет появляться новое значение, большее на 1. Потом тем же макросом рядом с этим значением автоматически будет вписываться текст из ранее заполненной формы, а само это значение проставится наверху формы, но это я умею и оно будет потом... Честно говоря, изучаю макросы всего третий день и все из-за этой штуки, хотя с екселем раньше работал плотно. Понял пока немного.
Сложность в том, что каждый раз надо адресоваться к ячейке на одну строку ниже. Была мысль воспользоваться заранее вычисленной функцией МАКС (ведь значения постоянно возрастают), но не могу понять, как привязать это значение или адрес к объекту Cells. А как было бы хорошо, если бы эта штука поддерживала относительную адресацию...
Всем привет. Делаю журнал регистрации. Задача такая: нужен макрос, при запуске которого в столбце, содержащем 1,2,3 и т.д. каждый раз будет появляться новое значение, большее на 1. Потом тем же макросом рядом с этим значением автоматически будет вписываться текст из ранее заполненной формы, а само это значение проставится наверху формы, но это я умею и оно будет потом... Честно говоря, изучаю макросы всего третий день и все из-за этой штуки, хотя с екселем раньше работал плотно. Понял пока немного.
Сложность в том, что каждый раз надо адресоваться к ячейке на одну строку ниже. Была мысль воспользоваться заранее вычисленной функцией МАКС (ведь значения постоянно возрастают), но не могу понять, как привязать это значение или адрес к объекту Cells. А как было бы хорошо, если бы эта штука поддерживала относительную адресацию...maxwax
SkyPro Извините, я кажется не очень удачно объяснил. Идею с формулой я понял, спасибо, но.... Предложенный вами вариант мне не подходит, по причине того, что мне нужна фиксация номеров в форме и в журнале, то есть весь процесс работы выглядит так; 1) заполняю форму 2) запускаю макрос, получаю номер и дату для формы и запись в строке 3) распечатываю форму 4) и заполняю следующую. Документации стало так много, что лазить в журнал за очередным номером - сущее мучение. Вот если бы можно было начать с заполнения журнала, тогда это бы заработало. Однако текст, вносимый в форму, настолько различен по объему, что его иногда приходится разбивать на две, иногда на три строки, а форма имеет заранее настроенные, строго определенные ширину столбца и высоту строки, и размер шрифта уменьшать уже некуда. А так ексель-моксель заполнит строку журнала при помощи функции "сцепить".
А теперь с макросом.
Цитата
MsgBox Selection.Offset(1, 0).Address
Как бы подставить вместо единицы формулу максимума в диапазоне - это вообще можно сделать? Вся проблема как раз в этом. Потому что поработал я в пятницу, а в понедельник пришел и стал делать дальше, а мои номера пошли со 2го, стирая старые записи, потому что при открытии книги курсор помещен в ячейку А1 и я забыл его переместить на последнюю сделанную в пятницу запись. Я, конечно, могу и не забывать, но понимаете, понедельник день тяжелый
SkyPro Извините, я кажется не очень удачно объяснил. Идею с формулой я понял, спасибо, но.... Предложенный вами вариант мне не подходит, по причине того, что мне нужна фиксация номеров в форме и в журнале, то есть весь процесс работы выглядит так; 1) заполняю форму 2) запускаю макрос, получаю номер и дату для формы и запись в строке 3) распечатываю форму 4) и заполняю следующую. Документации стало так много, что лазить в журнал за очередным номером - сущее мучение. Вот если бы можно было начать с заполнения журнала, тогда это бы заработало. Однако текст, вносимый в форму, настолько различен по объему, что его иногда приходится разбивать на две, иногда на три строки, а форма имеет заранее настроенные, строго определенные ширину столбца и высоту строки, и размер шрифта уменьшать уже некуда. А так ексель-моксель заполнит строку журнала при помощи функции "сцепить".
А теперь с макросом.
Цитата
MsgBox Selection.Offset(1, 0).Address
Как бы подставить вместо единицы формулу максимума в диапазоне - это вообще можно сделать? Вся проблема как раз в этом. Потому что поработал я в пятницу, а в понедельник пришел и стал делать дальше, а мои номера пошли со 2го, стирая старые записи, потому что при открытии книги курсор помещен в ячейку А1 и я забыл его переместить на последнюю сделанную в пятницу запись. Я, конечно, могу и не забывать, но понимаете, понедельник день тяжелыйmaxwax
Сообщение отредактировал maxwax - Воскресенье, 11.08.2013, 17:49
Спасибо, учту, хотя сортировок тут не планируется - раз, и дублей не должно быть по определению, все номера уникальны - два. Будет время, разберусь подробнее, а пока - работает, и то ладно. А за труды всем спасибо.
Цитата
Вам же Михаил ответил - нет. Экс помнит последнюю выделенную ячейку(и).
Но ведь работает... кажется? Открываю книгу. В ячейке С8 (первой попавшейся) набираю "аджлповлаоп". После этого запускаю макрос - все работает как надо, несмотря на то последняя заполненная ячейка не та. Все работает и после закрытий-открытий, с сохранением и без. Я бы приложил полный файл со всеми наработками, но он на работе, и принести его домой я не могу. И выхода в инет оттуда нету. Я не исключаю, что проблемы возникнут, когда я буду заполнять форму, но там посмотрим.
Цитата
Избавит от дублей в случаях сортировок
Спасибо, учту, хотя сортировок тут не планируется - раз, и дублей не должно быть по определению, все номера уникальны - два. Будет время, разберусь подробнее, а пока - работает, и то ладно. А за труды всем спасибо.
Цитата
Вам же Михаил ответил - нет. Экс помнит последнюю выделенную ячейку(и).
Но ведь работает... кажется? Открываю книгу. В ячейке С8 (первой попавшейся) набираю "аджлповлаоп". После этого запускаю макрос - все работает как надо, несмотря на то последняя заполненная ячейка не та. Все работает и после закрытий-открытий, с сохранением и без. Я бы приложил полный файл со всеми наработками, но он на работе, и принести его домой я не могу. И выхода в инет оттуда нету. Я не исключаю, что проблемы возникнут, когда я буду заполнять форму, но там посмотрим.maxwax
Сообщение отредактировал maxwax - Воскресенье, 11.08.2013, 21:42
Помогите. Есть два столбца в Exel таблице (например А1:А100 и В1:В100), в которых представлены различные числовые значения. Необходимо выполнить подсчёт всех ячеек из диапазона А, которые больше соседней ячейки (в той же строке) из диапазона В. В идеале сделать вв трёх нижних ячейках А101- подсчёт количества значений что больше, В101 - подсчёт количества значений что меньше, С101- подсчёт количества значений где равно. Также важным является исключение пустых ячеек (чтобы счётчик не посчитал их как равно).
[moder]Читаем Правила форума, создаём свою тему, прикладываем файл с примером[/moder]
Помогите. Есть два столбца в Exel таблице (например А1:А100 и В1:В100), в которых представлены различные числовые значения. Необходимо выполнить подсчёт всех ячеек из диапазона А, которые больше соседней ячейки (в той же строке) из диапазона В. В идеале сделать вв трёх нижних ячейках А101- подсчёт количества значений что больше, В101 - подсчёт количества значений что меньше, С101- подсчёт количества значений где равно. Также важным является исключение пустых ячеек (чтобы счётчик не посчитал их как равно).
[moder]Читаем Правила форума, создаём свою тему, прикладываем файл с примером[/moder]vladcodex