Страницы: 1
RSS
Дополнить макрос на проверку строки, куда заносятся данные ввода
 
Всем добрый вечер, рад, что форум заработал))))    
Помогите пожалуйста дополнить макрос на проверку строки, куда заносятся данные ввода с Пользоват.Формы, если имеется условие (подробнее описание в приложенном док.)и вставка данных, в зависимости от этого в разные части имеющейся таблицы.
 
Количество строк диапазонов Участков всегда неизменное - 20 строк?
 
{quote}{login=Юрий М}{date=26.01.2010 10:01}{thema=}{post}Количество строк диапазонов Участков всегда неизменное - 20 строк?{/post}{/quote}  
 
Нет, не постоянно,- это я так в примере сделал. На самом деле, те таблички по участкам будут идти на листе друг за другом по горизонтали, а их столбцы, куда будут идти данные с ввода, будут располагаться  по вертикали вниз, стремясь к бесконечности (сколько хватит Excelя 2003))))))) )
 
делаете базу вида  
 
Имя Фамилия Отчество Год рождения Участок  
 
потом на ее основе сводной или как угодно по другому, быстро и красиво делаете что хотите. А сейчас Вы просите пришить кобыле хвост.
 
{quote}{login=littus}{date=26.01.2010 10:19}{thema=Re: }{post}{quote}{login=Юрий М}{date=26.01.2010 10:01}{thema=}{post}Количество строк диапазонов Участков всегда неизменное - 20 строк?{/post}{/quote} На самом деле, те таблички по участкам будут идти на листе друг за другом по горизонтали, а их столбцы, куда будут идти данные с ввода, будут располагаться  по вертикали вниз, стремясь к бесконечности (сколько хватит Excelя 2003))))))) ){/post}{/quote}  
Так и сделайте пример с реальной структурой. Иначе ведь потом сами закричите, что макрос неправильно работает на ВАШИХ данных. В Правила загляните...
 
{quote}{login=Dophin}{date=26.01.2010 10:25}{thema=}{post}делаете базу вида  
 
Имя Фамилия Отчество Год рождения Участок  
 
потом на ее основе сводной или как угодно по другому, быстро и красиво делаете что хотите. А сейчас Вы просите пришить кобыле хвост.{/post}{/quote}  
Я либо не верно понял, либо дам действительно много дополнять, чтоб мне объяснить и показать, но база  будет такая, как в примере.  С диапазонами и ориентацией на рабочем листе для меня будет значительно легче. Я мало разбираюсь в макросах и построении алгоритма и синтаксиса, поэтому, если для решения задачи макрос нужно полностью переделывать, то тогда буду делать по-другому.  
Спасибо.  
))
 
{quote}{login=littus}{date=26.01.2010 10:19}{thema=Re: }{post}{quote}{login=Юрий М}{date=26.01.2010 10:01}{thema=}{post}{/post}{/quote} На самом деле, те таблички по участкам будут идти на листе друг за другом по горизонтали{/post}{/quote}  
Следует ли это понимать так, что для первого участки - столбцы A:D, для второго - E:H, и так далее?
 
Да,  вы правы надо сразу по-нормальному делать.    
Но вот пример, однако, как и в первом , мои данные заносятся только в таблицу по Участку1. Как сделать чтоб данные заносились отдельно в таблицу по второму и отдельно по третьему участку я знаю, т.е поменять макрос. Так же думал, исходя из своих возможностей, сделать для каждого участка свою кнопку (но это не серьезно. А вот как заставит со своей Формы ввода распределятся данные по таблицам, в зависимости от введенного пользователем номера участка,- не понимаю..
 
вот набросал (макрос Юрия М слегка обгрызанный)  
База на листе2  
Результат на листе3  
алгоритм таков  
1.Записи добавляются в базу  
2. лист3 - очищается  
3. по базе формируется новый результат (с учетом новых данных) и копируется на лист3  
 
вот это нормальный алгоритм.  
 
тестите)
 
вообщем пока делал - власть поменялась )))))))
 
{quote}{login=littus}{date=26.01.2010 11:10}{thema=}{post}Да, вы правы надо сразу по-нормальному делать. Но вот пример, однако, как и в первом , мои данные заносятся только в таблицу по Участку1. Как сделать чтоб данные заносились отдельно в таблицу по второму и отдельно по третьему участку я знаю, т.е поменять макрос. Так же думал, исходя из своих возможностей, сделать для каждого участка свою кнопку (но это не серьезно. А вот как заставит со своей Формы ввода распределятся данные по таблицам, в зависимости от введенного пользователем номера участка,- не понимаю..{/post}{/quote} ну вот разносится по трем таблицам (только по трем) этот путь - это путь через задницу, причем даже еще худшую чем раньше. зачем такой геморрой добровольно себе на шею вешать - не понимаю. <BR><STRONG>Файл удален</STRONG> - велик размер. [Модераторы]
 
Извиняюсь за оффтоп.  
Dophin, ты icq пользуешься? Если да, напиши пожалуйста свой номер или постучись ко мне 577077221.
 
{quote}{login=Dophin}{date=26.01.2010 11:33}{thema=Re: }{post}{quote}  
этот путь - это путь через задницу, причем даже еще худшую чем раньше. зачем такой геморрой добровольно себе на шею вешать - не понимаю.{/post}{/quote}  
 
:-)))))))) да нет, просто так мне удобнее будет потом,- это ведь только пример )))  
К тому же у меня теперь целых два варианта решения вопроса,- а это всегда лучше, чем один, да и применять можно в разных ситуациях. За что Вам Огромное спасибо!!Сорри, что пришлось 2 раза работать с документами. В след раз буду логичнее))))    
А такие сложности я делаю (касаемо ориентации на листе, только из-за того, что мне так проще сообразить, как будет работать будущий макрос), я же не программист, я и делаю так, как хоть как-то могу представить ))))  
 
В общем спасибо всем)))
 
Сорри, глюкануло что-то.  
 
:-)))))))) да нет, просто так мне удобнее будет потом,- это ведь только пример )))  
К тому же у меня теперь целых два варианта решения вопроса,- а это всегда лучше, чем один, да и применять можно в разных ситуациях. За что Вам Огромное спасибо!!Сорри, что пришлось 2 раза работать с документами. В след раз буду логичнее))))    
А такие сложности я делаю (касаемо ориентации на листе, только из-за того, что мне так проще сообразить, как будет работать будущий макрос), я же не программист, я и делаю так, как хоть как-то могу представить ))))  
 
В общем спасибо всем)))
 
Проверьте. Тоже только для трёх участков.
 
Отлично! здорово))) Спасибо Вам. Буду внедрять )))))
 
ждем через месяц вопроса: "Есть вот ТАКАЯ табличка, участков - пятьдесят штук. Захотелось посчитать количество людей с возрастом больше 35 на участках с четными номерами. ПОДСКАЖИТЕ КАК?"
 
{quote}{login=Саша}{date=26.01.2010 11:35}{thema=}{post}Извиняюсь за оффтоп.  
Dophin, ты icq пользуешься? Если да, напиши пожалуйста свой номер или постучись ко мне 577077221.{/post}{/quote}  
стучал) 314361111
 
Dophin, не совсем)))) Но вопрос есть все же. Прикладываю файл, в котором все те же таблицы (в кол-ве 3 шт.) по ним разносятся данные с Формы ввода, в зависимости от участка (1,2 или з), но вот ошибка, которую я в макросе пытался сделать (при вводе данных, если не все поля ввода заполнены), не работает. Я там может и смешно с т.зрения программирования сделал (не судите строго), но мне так понятнее и хотелось бы именно в этом варианте записи сделать так чтоб появлялась ошибка если жмут ОК, а не все поля заполнены. )) <BR><STRONG>Файл удален</STRONG> - велик размер. [Модераторы]
 
littus, Ваш файл я удалил. Читайте Правила. В моём варианте такая проверка ведь сделана. Тоже примитивная :-)
 
Ой, извините, не посмотрел на размер....  
Да я видел, Ваш пример, собственно такая проверка в моем файле и вызвана Вашим примером, просто я хочу попробовать сделать вот в таком варианте написания. Я чего там не учел, только что не пойму.
 
ElseIf TextBox5 = "" Or TextBox4 = "" Or TextBox3 = "" Or TextBox2 = "" Or TextBox1 = "" Then  
MsgBox "Заполните все поля для ввода"  
 
 
а чем не устроил мой вариант с базой? поверьте - так будет много лучше)  
 
проще выложить базу и попросить сделать на ее основе отчет, чем потом выложить отчет и попросить сделать из нее базу (а это Вам непременно понадобится)
 
Dophin, спасибо! Все отлично теперь работает.    
Ваш вариант с базой универсален,- т.к. есть возможность более эффективно реализовать мою основную задачу. Просто захотелось попробовать выложенные Вами и Юрием М  макросы  сделать самому и немного по-другому (разобраться, попробовать, как оно работает),- начал с самого простого.  
Понравился вариант Вашего :  
 
Private Sub CommandButton1_Click()  
Dim i As Long  
Select Case TextBox5  
Case 1  
Range("a" & i + 1) = TextBox1.Value  
Range("b" & i + 1) = TextBox2.Value  
Range("C" & i + 1) = TextBox3.Value  
Range("D" & i + 1) = TextBox4.Value  
Case 2  
……………….  
Case 3  
………………  
End Select  
Me.Hide  
End Sub  
 
Но применяя теперь те же, сороки, для вывода ошибки в этом макросе, он, при запуске, выдает ошибку. Не подскажите, как в этом случае в макрос впишется вывод подобного окошечка с ошибкой. Честно, просто очень хочу разобраться.
 
логика хромает)  
зачем впихивать невпихуемое?  
селект отдельно, проверка отдельно должны быть.    
 
 
если (все заполнено) то  
  (тут селект)  
иначе  
  (сообщение об ошибке)  
конец если
 
таки хромает ))))    
все просто по-сути. Еще раз огромное спасибо за помощь, Вы мне очень помогли.
Страницы: 1
Читают тему
Наверх