Страницы: 1
RSS
Макрос формирования базы данных без повторяющихся значений
 
Здравствуйте, товарищи!  
Обращаюсь к вам с просьбой в написании макроса, который бы срабатывал при нажатии на кнопку, и копировал бы строки напротив которых стоит звёздочка из листа "База данных" в лист "Предварительный просмотр.  
Но при этом важным условием является то, чтобы при копировании также заносились данные на лист "предварительный просмотр" в черную рамочку вначале на листе. Но без повторяющихся значений.  
Заранее вам благодарен. Помогите, пожалуйста, ничего не смыслящему человеку в этом деле :)  
 
Файл прилагается в архиве
 
Ребята, очень надеюсь на вашу помощь! Помогите, пожалуйста!
 
можно про чёрную рамочку поподробнее ?  
Что писать напротив ПО, СПП-Элемент и т.д?  
неповторяющиеся значения через запятую что ли?
 
{quote}{login=Степлер}{date=14.01.2012 10:04}{thema=}{post}можно про чёрную рамочку поподробнее ?  
Что писать напротив ПО, СПП-Элемент и т.д?  
неповторяющиеся значения через запятую что ли?{/post}{/quote}  
 
Именно так! То есть строка копируется и сводит для доп информации свои значения по пунктам ПО, ББДС в эту черную рамочку. Но если какая то строка имеет такой же к примеру ББДС а По другое, то соответсвенно повтор не вносится а неповотор вносится.
 
может быть вы на вашем примере (см. файл) покажите, как должен выглядеть текст рядом с чёрной рамкой?
 
файл забыл
 
Я вложил архив и выделил красным цветом то, что повторяется. И вносится один раз только.
 
<макрос формирования базы данных без повторяющихся значений>  
 
Newbie User, тема будет переименована. Вам предложено новое название. Или предложите свое.
 
Пробуйте.  
 
P.S. Макрос запускается по Alt+F8
 
{quote}{login=vikttur}{date=14.01.2012 11:57}{thema=}{post}<макрос формирования базы данных без повторяющихся значений>  
 
Newbie User, тема будет переименована. Вам предложено новое название. Или предложите свое.{/post}{/quote}  
 
Ну Вам, как модератору, лучше ведь видно, как переименовать тему для того, чтобы нам как пользователем сразу видно было чему посвящена тема :) Ваше право. Если это поможет в чем то другим пользователям этого форума, то лучше конечно переименовать :) Вот.  
 
СТеплеру большое спасибо за проделанную работу. Я вами восхищяюсь просто :) Только не могли бы вы мне обьяснить ваш код. Что и какая строка выполняет :) Буду очень признателен.
 
А Вы в следующий раз старайтесь сами более информативно называть темы.
 
Вот код с комментариями
 
А возможна ли сделать так, чтобы после перенесения данных в лист "Предварительный просмотр" можно было сверить правильность перенесенных данных?  
 
К примеру переносимые данные должны быть всегда одного СПП-элемента. То есть сводить обработанные данные с листа "предварительный просмотр" нельзя в том случае, если там строки с разными СПП-элементами.  
 
Можно было бы прикрутить кнопку на лист "Предварительный просмотр", которая работала бы на проверку данных вот в верхней черной табличке, куда сводились данные по внесенным строкам? То есть если допустим в графе СПП-элемент больше одного значения, то выдавало бы ошибку и помечало бы цветом (красным к примеру.
 
{quote}{login=Степлер}{date=15.01.2012 12:51}{thema=}{post}Вот код с комментариями{/post}{/quote}Если не отмечена звездочкой вторая строка - выдает ошибку.
 
ничего не понял. Давайте по порядку  
 
1) приделать вам кнопку для запуска макрос на листе "Предвар. просмотр"? ОК  
2) если в D2 записано несколько элементов через запятую, что выделить эту ячейку D2 красным цветом?
 
{quote}{login=Степлер}{date=15.01.2012 12:59}{thema=}{post}ничего не понял. Давайте по порядку  
 
1) приделать вам кнопку для запуска макрос на листе "Предвар. просмотр"? ОК  
2) если в D2 записано несколько элементов через запятую, что выделить эту ячейку D2 красным цветом?{/post}{/quote}  
 
Нет, кнопка должна быть на листе "База данных".    
А по поводу второго пункта Вы правы. Если два разных значения (тобиш значений разных больше одного), то выделить эту ячейку красным и выдать сообщение о ошибке. Но эта проверка должна запускаться с кнопки на листе "предварительный просмотр".  
 
Кстати, замечание вована как не кстати верно :(
 
<Ну Вам, как модератору, лучше ведь видно, как переименовать тему...>  
Вы не правы. Модератор может быть "дуб как дерево" а данной теме и как правильно назвать проблему, виднее все-таки автору. Наше дело помочь.
 
1) Исправил ошибку про звёздочку во второй строке.  
2) добавил кнопку на листе База данных  
3) не понял, зачем вам ещё кнопка и другой макрос, который будет проверят столько значений написано в яч. D2 на листе Предварительный просмотр. Я думаю одного взгляда на эту ячейку будет достаточно, чтобы понять там написано 1 или несколько значений через запятую.
 
{quote}{login=Степлер}{date=15.01.2012 01:16}{thema=}{post}1) Исправил ошибку про звёздочку во второй строке.  
2) добавил кнопку на листе База данных  
3) не понял, зачем вам ещё кнопка и другой макрос, который будет проверят столько значений написано в яч. D2 на листе Предварительный просмотр. Я думаю одного взгляда на эту ячейку будет достаточно, чтобы понять там написано 1 или несколько значений через запятую.{/post}{/quote}  
 
Ну так то, конечно, верно судить что одного взгляда достаточно :) Но, всё таки выделение цветом куда будет информативней для беглого взгляда. То есть сразу зацепится взглядом пользователь в случае ошибки :)  
Ну и мне думалось что к кнопке для проверки ошибок можно было бы прикрутить код.  
То есть получается так алгоритм:  
1) Выбранные данные переносятся на лист предварительного просмотра.  
2) Пользователь нажимает на кнопку проверить  
3) в Случае ошибки выдает текст ошибки и показывает цветом  
4) в Случае если все верно, выполняется другая функция. А конкретно уходит на копирование на другие листы.  
 
Вот :)
 
а почему бы данную проверку не вставить сразу в мой макрос?  
Т.е. макрос переносит данные с листа База данных на лист Предвар. просмотр  
и сразу в конце макроса проверяет, что у нас записано в D2.  
Если несколько значений - выводим сообщение и красим в красный цвет.  
 
Не логично?
 
{quote}{login=Степлер}{date=15.01.2012 01:34}{thema=}{post}а почему бы данную проверку не вставить сразу в мой макрос?  
Т.е. макрос переносит данные с листа База данных на лист Предвар. просмотр  
и сразу в конце макроса проверяет, что у нас записано в D2.  
Если несколько значений - выводим сообщение и красим в красный цвет.  
 
Не логично?{/post}{/quote}  
 
Логично, но ошибку легче искать уже в листе "Предварительного просмотра". Там взглядом сразу можно будет найти какая строка с другим значением СПП. Нежели допустим искать это различие на листе "База данных".  
Так ведь? :)
 
так если вы запускали макрос, то видели, что макрос в конце кода Активирует лист Предварит. Продажи.    
Это означает, что всегда после работы макроса будет активен лист "Предвар. продажи". Т.е. пользователь сразу будет видеть ячейку D2, см. файл
 
я в последний файл встроил проверку на наличие нескольких элементов СПП, потестируйте
 
{quote}{login=Степлер}{date=15.01.2012 01:48}{thema=}{post}так если вы запускали макрос, то видели, что макрос в конце кода Активирует лист Предварит. Продажи.    
Это означает, что всегда после работы макроса будет активен лист "Предвар. продажи". Т.е. пользователь сразу будет видеть ячейку D2, см. файл{/post}{/quote}  
 
Вообще то тоже верно. Я бы даже сказал так гораздо удобнее, ибо действий совершается меньше. Почему то я сразу не сообразил. Вы меня извините, неуча, за эту оплошность. :) Но то что сделали Вы, это просто грандиозно. Преклоняюсь перед вашими знаниями в области программирования на языке vba, действительно мастер своего дела.  
Ну а сейчас пожалуй буду спать. Чего и Вам желаю, Степлер. Спокойной Вам ночи и ещё раз благодарю за помощь.  
С Вами интересно общаться, поэтому встретимся завтра на форуме :)
 
спокойной ночи )
Страницы: 1
Наверх