Уважаемые знатоки. Хотелось у вас узнать возможно ли такое. Задача такая: нужно, чтобы при заполнении строк всегда ниже оставалась одна непрописанная, чтобы при необходимости внести туда данные и после этого опять появлялась бы ниже одна не прописанная. Будет понятнее, если посмотреть на приложенный файл. Или хотя бы подскажите в каком напралении двигаться...
Igor67 Что-то у меня не получилось перенести макрос в свой вариант. Мож я не правильно что-то сделал? Я просто скопировал макрос в Модуль своего варианта. С макросами никогда не работал. Я так понимаю, что мне нужно самому у себя прописать макрос, но как?...((
Igor67 Вообще-то файл первоначально должен выл бы выглядеть таким образом (файл прикреплен). А с этой исходной позиции пример уже не работает и выдает ошибки. Причем желательно, чтобы в случае ошибочной записи можно было удалить строку. Хотя это можно сделать и простым удалением вручную со сдвигом вверх. Если можно пообщаться с Вами (kola_1@mail.ru) было бы великолепно, тогда бы Вам не пришлось самому все лопатить, а только пояснить мне некоторые моменты. Заранее спасибо.
У меня все работает при выборе фамилии. Ведь я только добавил If Target.Row > 2 Then 'если строка с измененной ячейкой больше 2 If Target.Column = 6 Then 'если измененная ячейка находится в солбце 6 что равно Ф
Range("A" & Target.Row & ":" & "L" & Target.Row).Insert Shift:=xlDown 'вставляем ячейки со сдвигом вниз Range("A" & Target.Row & ":" & "L" & Target.Row).Copy Range("A" & Target.Row).Offset(-1, 0).PasteSpecial xlPasteValues Range("A" & Target.Row & ":" & "L" & Target.Row).ClearContents End If End If
Что не работает? Так Вы рискуете попасть на любимую тему Лузера!!!!
Дело в том, что может быть такая ситуация, когда измененная ячейка может быть только в столбце 9 (I). К примеру, счет 0-1, 0-2 и т.д. Как учесть этот момент?
добавте проверку и на этот столбец. Должно работать If Target.Column = 6 or Target.Column = 9 Then --------------- Но не думал что счет может изменится, а фамилия игрока не вносится....
Igor67 Я, конечно, прошу прощения за настойчивость, но счет может измениться в любой момент, а вот авторов забитых мячей сразу можно и не узнать. Эта информация может появиться даже после окончания следующей игры. Приамбула: 28 февраля в Ровно состоится турнир форумских команд сайта www.ua-football.com из разных городов Украины (Киев, Днепр, Одесса...) по мини-футболу. Вот я и пытаюсь к этой дате подготовить таблицу турнира. Таблица почти готова и остадась эта обсуждаемая проблема. Конечно, можно и без этой фишки обойтись, но тогда таблица растянется вниз и будут зиять дыры. Я пытался вывести кнопки и при помощи макросов удалять лишние пустые строки, но в случае ошибочного нажатия не в той последовательности, выскакивает ваще что-то немыслимое. Я от этого отказался. Если не удастся мне с Вашей, конечно, помощью осуществить свою идею, то мне придется и от этого отказаться и оставить, как есть, без смещения строк. Тут одна особенность. Игра, конечно же, начинается при счете 0-0. Голы может начать забивать как первая команда, так и вторая. К примеру такая последовательность: 0-0, 0-1 (добавляется строка), 1-1 не добавляеся, т.к. уже есть), 2-1 (добавляется), 2-2 (не добавляеся) и т.д. Надеюсь, идея понятна. Конечно, можно и по завершению игры заполнить этот раздел, заранее добавив нужное количество строк. Если этот момент у Вас не отберет много времени, то помогите, пожалуцста, если потребуется больше затрат, то не насилуйте себя, оставлю, как есть. Для наглядности выкладываю файл, в котором выложена начальная позиция (макросы удалил). Заранее спасибо. Я уже начал изучать основы работы в ВБА, может в будущем будет из этого толк, жалею, что не занялся этим раньше, годков эдак 30 назад, но тогда еще всего этого не было, наверное...))
Николай?! Мне трудно понять Ваши объяснения и логику, но как понял. Если в строке уже есть фамилия - то при вводе второй ни чего не происходит. При этом без разницы в каком столбце изначально вводится.... Еще поставил проверку от случайного изменения ячейки. Если Вы ни чего не введете - макрос не сработает (вставка строки). Т.е. не знаете фамилию игрока забившего гол - все равно надо хоть 1 знак ввести в ячейку. Похоже на то что надо?
Igor67 Подогнал Ваш вариант под свой и О, Боже - за-ра-бо-та-ло!!! Спасибо за работу, я чрезмерно счастлив...)) Так что, Вы правильно поняли мои невнятные объяснения...
Igor67 Я, конечно, прошу прощения, но я по своему недосмотру в ячейку Н6 забыл вписать формулу (=ЕСЛИ(G5="";"";text!$A$8)), а в ячейку К5 формулу (=ЕСЛИ(J5="";"";text!$A$8)). Вписал самостоятельно, но при добавлении строки эти формулы в появившуюся строку не копируются. Будьте любезны, подскажите, что нужно сделать, чтобы формулы тоже прописались, причем с возрастанием G6, G7 и т.д. Ну и соответственно J6, J7......
Igor67 Спасибо за проделаную работу, все работает прекрасно, если... Да, есть тут несколько нюансов. Я Ваш (наш) файл немного покрутил и у меня возникло пару вопросов. Если бы они разрешились было просто прекрасно и файл можно будет назвать идеальным: 1. В ячейке М5 я прописываю формулу, к примеру =F5. При внесении в F5 фамилии формула в М5 меняется на =F6, добавляем еще фамилию и получаем =F7 и т.д. Т.е., я не могу теперь составить список забивавших. Пытался применить СМЕЩ, но результата не добился. В чем здесь секрет? или моя ошибка? подскажите, будьте так любезны. 2. При внесении фамилий в столбцы "F" и "I" все работает. Но может случиться такой вариант, когда внесли ошибочно фамилию (а такое случается довольно таки часто) и ее нужно заменить на другую. В нашем варианте при замене одной фамилии на другую опять снизу добавляется строка и теперь мы имеем снизу 2 пустых строки. Конечно, это не столь существенно, если ошиблись один раз. А если несколько? Тогда я приду к своему первоначальному состоянию, когда в этом диапазоне оставлял 10 строк. Надеюсь, я понятно изъяснил свои мысли? Если есть какие-то методы это исправить, подскажите, пожалуйста, что мне нужно сделать. Заранее спасибо, Николай.
Igor67 13.02.2009, 20:51 Прошу прощения, не заметил Ваш последний пост. На него можно ответить только однозначно: Вы, как минимум, Гений!!!...)) Но у меня, блин опять траблы...))
Igor67 Я тут чуть поколдовал и вот что получилось (прилагаю файл). Я просто прописал макрос на восстановление формул в столбцах "М" и "N", который вывел на кнопку. Скажите, а можно ли сделать так, чтобы этот макрос выполнялся самостоятельно после добавления строки? По-моему, это был бы выход. А вот по ошибочному внесению фамилии у меня пока не хватило времени подумать, т.к. уже пора идти на работу...))
Начну сначала. Программа отслеживает действие и только Вы можете знать ошибочное оно или нет. Получается 2 взаимоисключающих условия -> действие произошло, но ничего делать не надо. Выход - добавьте пустую строку в состав команд. в Старт я это сделал ="". В макросе поставил проверку на ввод пустой строки. Теперь он не вставляет строки, а выходит из процедуры. Но для ВБА это уже не является пустой ячейкой Not IsEmpty(Target.Offset(0, 3)) и это условие истинно, но на экране ничего не отображается. Ввели 1 фамилию неправильно - сразу во втором (другом) столбце вводите эту пустую строку. Макрос работать не будет, а у Вас появится возможность выбрать правильную фамилию без добавления строки. Формулу я Вам поправил, и поставил на условное форматирование. Теперь заливка и границы будут только при наличии данных. ЗЫ. начинаю уставать. Поможите, у себя поколдовал и не чого не получается. Сразу выкладывайте реальный файл, а то у нас 75% переписки неочем. И ЗЫ-2 Посмотрите под каким ником Вы-? подписались перед моим вопросом - "кто я?"
Igor67 Да, да, протупил я с никами однозначно!...) Прошу прощения, конечно, и, надеюсь, Вы на меня не сильно серчаете. Как говорится, впопыхах... По поводу моего реального файла, так он увесистый слегка. Почитав ветки сайта, я понял, что здесь не приветствуется чрезмерная нагрузка на трафик, поэтому выставляю легковесные примеры, а уже потом переношу новшества в оригинал. Весит в Раре он около 1 Мб. Думаю, что Вы уже и так потратили на меня много своего свободного времени, да и помощь Ваша практически по всем моим вопроса была неоценимой. Спасибо Вам за оказанную помощь, Вы меня заставили заинтересоваться ВБА, хотя я ранее категорически этому противился. Буду заканчивать свой файл, в течение недели, думаю, сделаю. Мог бы и раньше, но еще не все участники турнира подали заявки и не объявлен регламент турнира. Короче, меня сдерживают организаторы. Если Вам или еще кому-то будет интересен окончательный вариант таблицы (может кому-то как образец), то выложу на этой ветке. Конечно, это не вершина совершенства, но следует учесть, что я всего лишь обычный пользователь. Еще раз Вам огромное спасибо, думаю, что дальше справлюсь сам...
И PS про размер. В "темную" тащить мегабайт, удовольствие не для всех. Но дома мне все равно. Главное предупредить других участников, что размер XXXXL. Ведь не у всех безлимитный и скоростной. А так если сайт технически примет?, то наверно и можно. Хотя, все таки лучше через электрическую почту или файловый обменник.
Вот приблизительно то, чего мне хотелось сделать (выкладываю файл, в Раре 344 Кб). Не все мне здесь нравится, кое-что сделано примитивно, но в принципе работает. Кое-что хочу переделать и кое-что добавить, но это уже не существенно. Огромно спасибо неутомимому Igor67 за неоценимую помощь. Сайт вообще замечательный и пребывание на нем мне очень помогло и обагитило мои познания в Экселе. Спасибо всем... Николай.
Может не так попросил, попробую иначе. Хочу что б при каком либо действие в последней оставшейся строке, за ней автоматически создавалась новая строка, с такими же форматами, формулами и высотой строк ну и границ конечно.