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

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


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

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

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

Выпуск № 719
от 02.03.2008, 14:35

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 124751: Здравствуйте уважаемые эксперты! Помогите пожалуйста с одним вопросом: Если в Excel стандартная функция, которая выводила бы номера строк удовлетворяющих одновременно нескольким условиям из разных столбцов. Если такой функции нет, то подскаж...
Вопрос № 124823: Здравствуйте уважаемые эксперты! Помогите пожалуйста с одним вопросом: можно ли с помощью макроса назначить горячие клавиши для отображения примечания к ячейке, т.е. чтобы примечание всплывало не при наведении курсора на ячейку, а после акти...

Вопрос № 124.751
Здравствуйте уважаемые эксперты! Помогите пожалуйста с одним вопросом:

Если в Excel стандартная функция, которая выводила бы номера строк удовлетворяющих одновременно нескольким условиям из разных столбцов. Если такой функции нет, то подскажите пожалуйста как это можно реализовать в макросе.

Заранее спасибо!
Отправлен: 25.02.2008, 14:24
Вопрос задал: Faraviper (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Megaloman
Здравствуйте, Faraviper!
Я понял задачу таким образом, что надо иметь средство для быстрого поиска строк, для которых выполняются некоторые условия, для чего и необходимо выводить номера строк.

Для определенности, пусть начиная с, допустим, ячейки А4 есть данные в трех столбцах,
A,B,C, нам надо вывести (отобразить) номера строк, удовлетворяющих некоему условию,
например A=6, B=28, C=101

1 44 101
2 45 123
6 28 101
4 44 101
5 16 456
6 28 101
7 35 176
8 28 134
9 28 125
5 28 115

Способ 1
В ячейке, например, E4, пишем формулу
=ЕСЛИ(И(A4=6;B4=28;C4=101);СТРОКА(A4);" ")

Если надо отобразить номер не экселловской строки, а относительно начала данных в Вашей таблице, то в формуле необходимо учесть смещение данных относительно первой строки таблицы (в нашем случае =3). Тогда формулу можно записать в виде:
=ЕСЛИ(И(A4=6;B4=28;C4=101);СТРОКА(A4)-3;" ")

Распространяем ее на необходимые строки столбца E, в результате в столбце отобразятся номера строк, удовлетворяющих заданному условию

Способ 2
Становимся на A4. Далее: Формат - Условное форматирование -
Условие 1 - Выбираем "Формула",
справа в окне пишем =И($A4=6;$B4=28;$C4=101)
Кнопка формат - Вид - Заливка ячеек - Выбираем, например, желтый цвет, или (и) в закладке шрифт -какой-нибудь выделяющийся шрифт
ОК

Копируем A4, помечаем все Ваши данные, Правка - Специальная вставка - Форматы
Если ячейки в разных столбцах имеют разные форматы (число десятичных знаков, выравнивание и т д), лучше условное форматирование сделать для каждой ячейки первой строки, а затем уже скопировать эту строку и сделать на остальные строки Правка - Специальная вставка - Форматы
В результате строки, удовлетворяющие Вашему условию, выделятся другим цветом.
По линейке в таблице сразу очевидно какая строка удовлетворяет Вашему условию.
А если строки с данными в таблице пронумерованы (обычно, так чаще всего и делается в таблицах),
то увидите и относительные номера строк.
Мне кажется, этот способ наиболее практичен, особенно если выводить таблицу на печать: сразу видно, где получилось искомое.
Способ 3
Макрос. В ячейке A1 через ";" перечислены номера строк, удовлетворяющих заданному условию

AAA = ""

For i = 4 To 13

If Range("a4").Offset(i - 4, 0) = 6 _
And Range("b4").Offset(i - 4, 0) = 28 _
And Range("c4").Offset(i - 4, 0) = 101 Then
AAA = AAA + Str(i) + ";"
End If

Next
Range("a1") = AAA

---------
Нет времени на медленные танцы!
Ответ отправил: Megaloman (статус: Студент)
Ответ отправлен: 25.02.2008, 23:22
Оценка за ответ: 5
Комментарий оценки:
Все работает! Большое спасибо!


Вопрос № 124.823
Здравствуйте уважаемые эксперты! Помогите пожалуйста с одним вопросом:

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

Заранее спасибо.
Отправлен: 25.02.2008, 21:24
Вопрос задал: Faraviper (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Faraviper!
Создать "Макрос" и назначить ему "Горячие клавиши" можно, в теле соответствующего "Макроса" разместить скрывающие или отображающие примечание команды, тоже можно.

Но эти команды управляют настройками не только листа, но всего Excel, и будут "всплывать" или "отображаться" все примечания, во всех документах. А разве Вам это нужно?
Ищите другие способы, мой ответ на вопрос: "можно ли ... назначить горячие клавиши для отображения примечания к ячейке" - нет
Евгений.

Приложение:

Ответ отправил: Тесленко Евгений Алексеевич (статус: Студент)
Ответ отправлен: 26.02.2008, 00:21

Отвечает: Коровин Александр
Здравствуйте, Faraviper!
Можно попробовать следующее: создать Макрос, назначить ему горячие клавиши, а в самом макросе прописать: ActiveCell.Comment.Visible = True. Аналогично можно создать макрос по скрытию примечаний в выделенных ячейках (ActiveCell.Comment.Visible = False). Данные макросы работают, даже если отключить показ примечаний в настройках приложения. Удачи.
Ответ отправил: Коровин Александр (статус: 2-ой класс)
Ответ отправлен: 26.02.2008, 07:58


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


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

В избранное