Страницы: 1 2 След.
RSS
Автоматическое добавление строки с данными.
 
Уважаемые знатоки. Хотелось у вас узнать возможно ли такое.  
Задача такая: нужно, чтобы при заполнении строк всегда ниже оставалась одна непрописанная, чтобы при необходимости внести туда данные и после этого опять появлялась бы ниже одна не прописанная.  
Будет понятнее, если посмотреть на приложенный файл.  
Или хотя бы подскажите в каком напралении двигаться...
 
Направление - похожее делал по ссылке.  
http://www.planetaexcel.ru/forum.php?thread_id=5569  
Вариант в файле. При выборе фамилии ячейки сдвигаются вниз.  
Похоже получилось?
 
Igor67  
))  
Не то слово, даже не ожидал!!! Спасибо, сейчас покручу и попробую вставить в свой вариант.
 
Igor67  
Что-то у меня не получилось перенести макрос в свой вариант.  
Мож я не правильно что-то сделал? Я просто скопировал макрос в Модуль своего варианта. С макросами никогда не работал. Я так понимаю, что мне нужно самому у себя прописать макрос, но как?...((
 
Igor67  
Вообще-то файл первоначально должен выл бы выглядеть таким образом (файл прикреплен). А с этой исходной позиции пример уже не работает и выдает ошибки.  
Причем желательно, чтобы в случае ошибочной записи можно было удалить строку. Хотя это можно сделать и простым удалением вручную со сдвигом вверх.  
Если можно пообщаться с Вами (kola_1@mail.ru) было бы великолепно, тогда бы Вам не пришлось самому все лопатить, а только пояснить мне некоторые моменты.  
Заранее спасибо.
 
Igor67  
Извините, забыл файл прикрепить...))
 
У меня все работает при выборе фамилии.  
Ведь я только добавил    
   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 за неоценимую помощь.  
Сайт вообще замечательный и пребывание на нем мне очень помогло и обагитило мои познания в Экселе.  
Спасибо всем...  
Николай.
 
Извините, забыл защитить лист...  
Обновлено....
 
А вот последняя версия... (350 Кб)
 
Кому интересно - вот что получилось в итоге.  
архив 416 Кб.  
Еще раз огромное спасибо за помощь.
 
Уважаемые!, а можно и к моей таблице такое прикрутить? так сказать способ от жадности, что б строки не кончались :-))
 
Может не так попросил, попробую иначе. Хочу что б при каком либо действие в последней оставшейся строке, за ней автоматически создавалась новая строка, с такими же форматами, формулами и высотой строк ну и границ конечно.
 
Меню Данные-Список-Создать_список.
Страницы: 1 2 След.
Читают тему
Loading...