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

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


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

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

Выпуск № 618
от 25.09.2007, 23:05

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


Вопрос № 102736: Уважаемые эксперты, не могу решить один важный для меня вопрос. У меня есть список подразделений организации, достаточно длинный. Он находится в столбце А. В столбцах В и С содержатся данные по этим подразделениям. В столбц...
Вопрос № 102741: Есть две таблицы, в одной строка ZB_RAZOM в другой ВР620_04 обе с числовые. Как зделать чтобы проверяло идентичность значений в этих строках?...

Вопрос № 102.736
Уважаемые эксперты,

не могу решить один важный для меня вопрос.

У меня есть список подразделений организации, достаточно длинный. Он находится в столбце А. В столбцах В и С содержатся данные по этим подразделениям.

В столбце D напротив каждого филиала мне нужно автоматически проставлять слово "филиал", напротив каждого агентства - слово "агенство", в случае если это подразделение не является ни агенством, ни филиалом, то проставлять ничего не нужно.

То есть мне нужно реализовать программу, которая будет проверять, содержится ли в тексте ячейки столбца А текст "филиал" или "агенство", и если содержится, проставлять в данные в столбец D.

Просто пределением значения ячейки проблему решить не удастся, так как каждый филиал и каждое агенство имеет уникальное имя и совпадают в них только слова "агентство" и "филиал".

Кроме того, надо, чтобы программа заканчивала своё действие, как только наткнётся на первую пустую ячейку в столбце А.

Заранее благодарен за ответы

С уважением, Александр
Отправлен: 20.09.2007, 10:25
Вопрос задал: Икрамов Александр Павлович (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Alexander N. Monastyrsky
Здравствуйте, Икрамов Александр Павлович!

Зачем так сложно. Можно решить гораздо проще.
Вставляем в ячейку D1 формулу:
см. Приложение.

А потом применяем умное копирование на столько строк, сколько нужно.
В крайнем случае, можно разобрать конструкцию и склепать макрос-модуль.
Логику я показал.

Часть ответа удалена, как неимеющая отношения к вопросу.


-----
∙ Отредактировал: Maxim V. Tchirkine (Академик)
∙ Дата редактирования: 20.09.2007, 11:34

Приложение:

---------
Страшен Русский сервис, бессмысленный и беспощадный...

Ответ отправил: Alexander N. Monastyrsky (статус: 2-ой класс)
Ответ отправлен: 20.09.2007, 10:55
Оценка за ответ: 5
Комментарий оценки:
Благодарю. Мне это очень поможет. Не знал о таких ответвлениях функции если

Отвечает: Черников Игорь Владимирович
Здравствуйте, Икрамов Александр Павлович!
Sub Макрос1()
Dim Наименование As String
Dim счётчик As Integer
Do
счётчик = счётчик + 1
Наименование = Worksheets("Лист1").Range("A" & счётчик)
If Наименование = "" Then Exit Do
If InStr(Наименование, "агентство") <> 0 Then Worksheets("Лист1").Range("D" & счётчик).Value = "Агентство"
If InStr(Наименование, "филиал") <> 0 Then Worksheets("Лист1").Range("D" & счётчик).Value = "Филиал"
Loop
End Sub

Можно и без макроса:
=ЕСЛИ(ЕОШИБКА(ПОИСК("агентство";A1)>0)=ИСТИНА;ЕСЛИ(ЕОШИБКА(ПОИСК("филиал";A1)>0)=ИСТИНА;"";"филиал");"агентство")
---------
От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 5-ый класс)
Ответ отправлен: 20.09.2007, 18:48

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Икрамов Александр Павлович!
Совсем случайно (как рояль в кустах:)) у меня есть готовое решение для Вас.
http://ifolder.ru/3435362
Это надстройуа Excel. После ее подключения, появляется пункт меню, вызывающий диалог. В диалоге указываете столбец поиска, искомый текст, целевой столбец и отобращаемую метку - "Выполнить" и все готово.
Удачи.
Евгений.
Ответ отправил: Тесленко Евгений Алексеевич (статус: 9-ый класс)
Ответ отправлен: 21.09.2007, 22:05

Отвечает: Архипов Александр Леонидович
Здравствуйте, Икрамов Александр Павлович!
Попробуй вот так:
=ЕСЛИ(ЕОШИБКА(ПОИСК("филиал";A1)>0);ЕСЛИ(ЕОШИБКА(ПОИСК("агенство";A1)>0);"";"агенство");"филиал")
Ответ отправил: Архипов Александр Леонидович (статус: 3-ий класс)
Ответ отправлен: 24.09.2007, 13:59


Вопрос № 102.741
Есть две таблицы, в одной строка ZB_RAZOM в другой ВР620_04 обе с числовые. Как зделать чтобы проверяло идентичность значений в этих строках?
Отправлен: 20.09.2007, 11:27
Вопрос задал: Коновалов Николай Станиславович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Коновалов Николай Станиславович!
Select *, f1 & f2 & ... As Test From Tbl1 Where Test Not In(Select f1 & f2 & ... As Test From Tbl2)
Подобный запрос выдаст все записи таблицы Tbl1 которым нет соответствия в таблице Tbl2.
Судя по объему кода предоставленного для образца, это упражнение будет Вам по силам.
Удачи.
Евгений.
Ответ отправил: Тесленко Евгений Алексеевич (статус: 9-ый класс)
Ответ отправлен: 21.09.2007, 22:31


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

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

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

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

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


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


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

В избранное