Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2010, 16:23   #1
Atevss
 
Регистрация: 22.12.2009
Сообщений: 5
По умолчанию Добавление строк

Здравствуйте, помогите, пожалуйста, с решением задачи, дело в том, что на форуме очень много подобных тем, но мне все равно ничего не помогло

Есть два файла lp1 и plan1 (во вложении, хотя на самом деле таблицы ооооочень большие)
по сути plan1 состоит из данных lp1

В файл lp1 периодически добавляются строки, необходимо сделать так, чтобы при желании пользователя в файл plan1 в последующие строки добавились значения только новых строк из lp1.

Я пыталась это реализовать просто через промежуточный лист в lp1 с новыми данными, но у меня не получилось сделать так, чтобы при использовании события Worksheet_Change копировались только ДОБАВЛЯЕМЫЕ целые строки.
Вложения
Тип файла: rar lp.rar (9.4 Кб, 14 просмотров)
Atevss вне форума Ответить с цитированием
Старый 08.03.2010, 23:42   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Коды макросов расположить в соответствующих книгах.Укажете в plan1 путь к файлу Lp1,и имя листа в константах.
Первым запустить Lp1,вызвать событие Worksheet_Change на Листе3
При первом запуске plan1 укажете (макрос сам попросит)номер строки Листа3 Lp1 , с которой надо начинать отбор строк.
Вложения
Тип файла: rar TBL.rar (35.5 Кб, 14 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 09.03.2010, 03:34   #3
Atevss
 
Регистрация: 22.12.2009
Сообщений: 5
По умолчанию

Спасибо огромное за ответ. А нельзя ли сделать так, чтобы пользователю не приходилось вводить номер строки с которой начинать отбор, чтобы новые строки были выбраны без его участия. И еще при вводе в lp1 нескольких новых строк в результате в plan1 копируется на одну меньше
Atevss вне форума Ответить с цитированием
Старый 09.03.2010, 11:14   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Исправил перенос всех новых строк.
По поводу указания номера строки.
Она указывается только один раз при первом запуске макроса(не при открытии книги).
В реестр записывается номер строки с которой надо начинать отбор,иначе номер строки 0.
Далее указание диазазона для отбора идет автоматически.Книга донор при событии Worksheet_Changeзаписывает в реестр номер последней заполненой строки.
Книга с макросом Start загружает с реестра номер первой и последней строки не загруженого диапазона новых записей .
После добавления данных записывает в реестр номер первой строки для отбора как номер последней +1
Вложения
Тип файла: rar plan.rar (24.9 Кб, 19 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 09.03.2010, 18:03   #5
Atevss
 
Регистрация: 22.12.2009
Сообщений: 5
По умолчанию

Не сочтите за попрошайничество, но я так поняла, что все ячейки самой последней строки в lp1 должны быть обязательно заполнены, но очень часто (на практике) некоторых данных нет и в строках присутствуют пустые ячейки, ведь тогда макрос не сработает, как быть?
Atevss вне форума Ответить с цитированием
Старый 09.03.2010, 18:12   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Замените на
Код:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim ra As String
  ra = Columns(1).SpecialCells(xlCellTypeConstants).AddressLocal
Dim g, sl
  
  g = Split(ra, ":", -1)

    sl = Split(g(1), "$", -1)
     SaveSetting DEVNAME, APPNAME, "Poz_last", sl(UBound(sl))
    
End Sub
будет срабатывать по наличию записи в колонке"А"
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 09.03.2010, 19:37   #7
Atevss
 
Регистрация: 22.12.2009
Сообщений: 5
По умолчанию

Огромнейшее Вам СПАСИБО, Все работает....

А можно еще один вопрос не в тему?Хотя, конечно, Вы мне и так очень помогли, но, если у Вас есть время.... Вы не подскажите мне, как сделать так, чтобы данный макрос (вложение) сам находил максимальное и предыдущее перед максимальным значением, окрашивая строку в нужный цвет, просто в созданном мной макросе, я вручную прописала значение (>5). А на самом деле мест может быть очень много (важно закрасить цветом последних два)

В любом случае спасибо еще раз
Вложения
Тип файла: rar zak.rar (9.0 Кб, 12 просмотров)
Atevss вне форума Ответить с цитированием
Старый 10.03.2010, 00:21   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от Atevss Посмотреть сообщение
Вы не подскажите мне, как сделать так, чтобы данный макрос (вложение) сам находил максимальное и предыдущее перед максимальным значением
Подскажу Нажать на кнопку
Вложения
Тип файла: rar zak.rar (13.4 Кб, 12 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 10.03.2010, 05:15   #9
Atevss
 
Регистрация: 22.12.2009
Сообщений: 5
По умолчанию

Спасибо
Atevss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ДОбавление строк из БД Kveldulv Microsoft Office Excel 2 09.02.2010 15:52
Qt. QSqlTableModel. Добавление новых строк. HIC Qt и кроссплатформенное программирование С/С++ 0 07.07.2009 16:31
GridView - добавление строк freez87 Общие вопросы .NET 5 06.06.2009 00:11
добавление строк StringGrid Alex_76 Помощь студентам 7 10.06.2008 15:17
Добавление строк в массив boks Microsoft Office Excel 2 28.09.2007 10:08