Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 657
от 26.11.2007, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 270, Экспертов: 44
В номере:Вопросов: 1, Ответов: 2


Вопрос № 110428: Здравствуйте господа эксперты. Каждое утро стыкаюсь с необходимостью обновления БД, эта монотонная работа уже изрядно надоела, она занимает время... Ее можно оптимизировать и думаю, вы мне в этом и поможете, за что буду очень благодарен. Есть 2 ....

Вопрос № 110.428
Здравствуйте господа эксперты. Каждое утро стыкаюсь с необходимостью обновления БД, эта монотонная работа уже изрядно надоела, она занимает время... Ее можно оптимизировать и думаю, вы мне в этом и поможете, за что буду очень благодарен.
Есть 2 .xls файла назовем их Книга 1 и Книга 2. В книгу 1 нужно каждое утро копировать изменение цен и дат с Книги 2.

Приложение:

Отправлен: 21.11.2007, 18:18
Вопрос задал: Sergey Ikurskiy (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Денисов Сергей Иванович
Здравствуйте, Sergey Ikurskiy!
Вот попробуйте макрос.
Только для простоты во второй столбик вместо дата изменения ставится текущая дата.

Приложение:

Ответ отправил: Денисов Сергей Иванович (статус: 1-ый класс)
Ответ отправлен: 22.11.2007, 15:01
Оценка за ответ: 3
Комментарий оценки:
Вы сделали простое обновление, но ведь не все нужно обновлять, ячейки, где дата и цена выделена синим или другим цветом не нужно ни при каких условиях изменять.

Отвечает: Черников Игорь Владимирович
Здравствуйте, Sergey Ikurskiy!
Вставьте этот код в макросы Книги1.
Dim строка As Integer 'Объявляем переменные
Dim строка1 As Integer
Dim Код As String
Dim цена As String
Workbooks.Open Filename:="C:TempКнига2.xls" 'Открываем Книгу2 (путь к книге укажите свой)
Workbooks("Книга2.xls").Sheets("Лист1").Activate 'выбираем Лист1
строка = 1
Do
строка = строка + 1 'Счётчик строк в Книге2
Код = Workbooks("Книга2.xls").Sheets("Лист1").Range("A" & строка).Value 'узнаём код предприятия
If Код = "" Then Exit Do 'Если в ячейке пусто, то выходим из цикла
строка1 = 1
Do
строка1 = строка1 + 1 'Счётчик строк в Книге1
If Workbooks("Книга1.xls").Sheets("Лист1").Range("A" & строка1).Value = "" Then Exit Do 'Если ячейка пустая, то выходим из цикла
If Код = Workbooks("Книга1.xls").Sheets("Лист1").Range("A" & строка1).Value Then 'Если коды совпадают, то...
Workbooks("Книга1.xls").Sheets("Лист1").Activate 'выбираем Лист1
Range("C" & строка1).Select 'Выбираем ячейку, где цена
If Selection.Font.ColorIndex = 5 Then Exit Do 'Если цена выделена ярко-синим цветом, то выходим из цикла
Workbooks("Книга1.xls").Sheets("Лист1").Range("C" & строка1).Value = Workbooks("Книга2.xls").Sheets("Лист1").Range("C" & строка).Value 'исправляем цену
Workbooks("Книга1.xls").Sheets("Лист1").Range("B" & строка1).Value = Workbooks("Книга2.xls").Sheets("Лист1").Range("D1").Value 'исправляем дату
Exit Do 'выходим из цикла
End If 'Конец условия
Loop 'Конец цикла
Loop 'Конец цикла
Application.DisplayAlerts = False 'запрещаем окно сохранения книги
Workbooks("Книга2.xls").Close 'Закрываем книгу
Application.DisplayAlerts = True 'разрешаем окно сохранения

Удачи. Возникнут вопросы - пишите в личку
---------
От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 8-ой класс)
Ответ отправлен: 24.11.2007, 13:39
Оценка за ответ: 5
Комментарий оценки:
Первое слово которое пришло мне на ум это "ОГО". Не ожидал такого точного и развернутого ответа. Спасибо огромное Вам, спасибо "RUSFaq".


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.64 от 24.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное